Less "bad" and more "completely pointless."
The only bad thing about it is that it violates the DRY principle ("don't repeat yourself") making you type the same 3 lines over and over again, as well as obfuscating how/if your models are being registered. Its not that it doesn't work, but that when it fails, its harder to figure out why (as well as serving no purpose: all items need models and none of the information needed to register one is private (but this CAN change in some circumstances--eg custom mesh definitions--and THAT'S what an interface is good for)).
(Note that I'm the one that started the crusade against IHasModel and I'm pretty sure you're echoing what someone else said about it, and not what I've said. )
Other than that, pretty accurate post