These are role models that I personally very much agree with. At the same time, the industry has need for relatively few people like them. Of course, if every programmer would magically turn into them, that'd be great. But no one turns into them over night. And I think it's obvious that it makes no sense honing yourself into a perfect logical machine of deadly precision, if tomorrow you're still writing the same boring crap. Most programmers have boring jobs. Not because they're bad, but because most software being written is solving boring problems.
I don't think that the average programmer knows less about the law (or any other field) than someone in another non-legal profession, I think that they know about the same amount. But they should know MORE about the other professions, because most programming jobs have to do with commerce, law, design, what have you. Software products almost always have to do with a domain that is not software. A dentist has little use for law in his working life, but a programmer is more likely to profit from a basic understanding.
One thing that is special about the programming profession is that it is very diverse in levels of skill. And that's not only ok, I think that's a good thing.
I think this diversity is connected to a few things, one of them:
Our work product is very cheap to copy, and in the resulting economy, a small difference in utility will lead to huge differences in market share. Given a large market, this makes it reasonable to hone your skills further, where in other professions you'd be facing diminishing returns much earlier. This applies more to software that is widely used -- it has a larger market. Given a small market, this applies much less.
In other, oversimplified, words: if you're writing software that is used (directly, or indirectly) by thousands, it pays off to train yourself for an extra year, even if it increases the utility of your product by only a small percentage. On the other hand, if you're a freelancer building web pages for a local business (a market size of 1), you're not going to profit much from the increase in utility.
Becoming Carmack makes sense in a large market. In a small market, it doesn't make sense to try to dominate it, but to acquire new markets.