I disagree that Emacs is actively trying to work against certain classes
of users, as you seem to suggest.
Obviously, Emacs has varying degrees of support for different
programming languages. Somebody has to provide such support, it does not
materialise out of the blue, and as with most free software support
follows the interest of the developers.
If C# is poorly supported, it simply means that very few dedicated emacs
hackers has had the need/motivation/time to provide it. In contrast,
Emacs offers some of the best Common Lisp support anywhere, complete
with cross-referencing, documentation access, completion and minibuffer
argument hints.

The question is why the respective facilities are not part of the
generic Emacs language support framework. Support for every language
has a completely disjoint set of features, keybindings, highlighting,
and so on of wildly differing quality, design and usability.

I have to agree with David here. I'd noticed for a long time that every
mode is a little different. Different C-c special bindings doing
similar things, or the same C-c binding doing the different things.

This is something I addressed from the start with CEDET. Every
mode-specific configuration fits in the CEDET infrastructure, not at the
user interaction level. Parsers, project support, template support, etc
can be provided for a language without consideration for how it might be
used. The results are managed by the CEDET infrastructure, and tools
built on top of that infrastructure will work for every language with
support the same way. ECB is a great example of this language
homogenization at work on a complex and very cool app.

Getting the suite of tools in CEDET to do this wasn't that hard, but did
take time. Finding tools I liked, figuring out the commonality between
languages, and trying to make it "easy" to add language support was the
first step, and there are lots of tools out there to start from. Many
other "ui" like tools do the same. Anything and predictive come to mind.

I don't want to claim that CEDET is the best thing going, but I do think
that building up infrastructure for languages to add specialty support
is what will make having consistent language support more likely, and
thus make Emacs easier to learn for all languages.