As a consequence they have been actively re-writting old VB6 applications in C# on the back of 'VB6 is going out of support soon and we can't have applications unsupported' as the justification for the last two years and now with the management team it's an
ingrained policy. My previous company also actively promoted migrating away from VB6 as well.
1) Migrating from VB makes business sense because of the unsupported issue.
2) I've mentored VB developers through migrations and I almost always recommend C#. Why? Because a complete switch in language gives people a bigger kick to think in .net terms. I've seen people treat VB.NET as, well, VB. Big static objects named Util to replace
a module. It's not pretty; the paradigm shift invovled with thinking in a new language does, in my experience, make for a better (if longer) migration/learning process.
What you are talking about is the difference between good and bad developers. I guess there are good and bad C# developers also.
It is just as likely that you create bad code in C# as in VB7+.
It is amazing how many developers that cannot seperate eg. the GUI from the rest of the code.
I have recently seen some stored procedures that besides the data also returned how the layout of the data should be in the UI (web page).