The simple question is: what is the compelling reason to want to use these advanced techniques instead of workarounds?
Once again, it's not for day2day dev work, but rather for something like an ORM layer, debugger, IDE, or when you need to add in a truly new feature and can't wait the (2011 - 1998 = 13) years for somebody else to put it in (think auto and anonymous functions).
A workaround by definition is not-ideal, usually sacrificing on maintainability. You are essentially building on a crooked foundation, even in the simple cases. When your core dev tools make these kinds of sacrifices, things just get ever more crooked.
The less work-arounds a language requires (or the more cleanly they can be hidden), the higher the heights to which it can rise.
For the general question of language internals, it's not really a binary question, but rather a continuum. I've found that a good rule of thumb is: the less CS/software engineering a quant knows, the more liable he is to make an utter mess of things, to the point where his project can become a veritable black-hole of man hours. I've experienced this multiple times, including cases where I've been the quant creating the black hole. Language choice is a always a huge factor. When I encounter such a quant, the first thing I do is burn the resume.
Like it or not, virtually all quant jobs involve producing software, so virtually all quants need to be good software engineers, lest they drown in their own filth.