You are right adding new Modes always was cumbersome. But treating fundamentally different things as equal 
cannot be the solution. I see no way around that. The goals and implementation of traditional autoinstall and 
new semi-auto mode simply do not have too much in common (IMHO it is only the term "Auto" ;-).
 
grep for Mode.autoinst gives 107 hits on my work machine. But a lot of them can be trivially decided. We can even let Mode.autoinst be true for both automatic and semi-auto and add new Mode functions to differ between the two cases.

BTW: I had a short glance into some of the Mode.autoinst occurrences in some *finish.rb clients and I am not sure they do what is expected for a semi-auto installation. So checking all these would be needed anyway.

Alternative is to break autoyast installations for customers, which could be result in a lot more work (especially 
because fixing the problem could again introduce breakage in semi-auto mode which will not be discovered until 
next SP release).