However, the points about automatic type casting still apply, I guess, so there are still problems to overcome.
It never applied. The solution is easy as pie. Make a rule that determines which should be invoked given certain circumstances, (for example, strings always win, since everything can be converted to a string and throw a compiler warning when an unclear choice (ie bad programming) presents itself.
Our unit test framework (for instance) currently has a rediculous number of Assert Methods, with a very confusing interface, because we have to append the name of the Type taken as a parameter to the end of every function.
It seems to fall between two stools.
Jack of all trades, master of none? Never the less BlitzMAX is still in my opinion the hands down best language available, for nearly anything. Sure it lacks a few things (ad-hoc polymorphism being one, proper access modifiers being another and a decent Eclipse plug-in being absolutely essential), but it's still by far the language that produces the largest ammount of functional code, per unit of time.
Personally tho', I don't see the "new stuff being forced on beginers" as being a problem, because it's abstracted from the way computers really work, it's actually easier than doing it the procedural way. Providing you don't go overboard.
I guess seeing any language updates, that don't provide some form of advancement towards the 3D module, until said module has shipped is probably pushing it.