hard coded is great as long as you dont plan any radical change in the near future nor any radical hack in the core or template.
for anything else im sorry but the whole software world went modular a very long time ago and rightfully never looked back.
p.s.
why not implementing a sort of "template overrides" like joomla 1.5.xx ?
Not true at all. If the system with hooks and callbacks had a major update, the modification still wouldn't work for a few reasons:
1) The hook/callback you are using was moved to a different place or no longer exists
2) If there was a major update, you would have to update your hooks and callbacks because of the major updates, the code would not be the same, and not do what is expected.
you see, the issue with OSS and general "free" projects is they have this tendency to reinvent the wheel.
one day they wake up and announce the next version will be rewritten from scratch thus destroying any compatibility nor usually providing any decent migrator script, that's what they did for joomla 1.5 for instance and same will be with 1.6
on the other side UNIX can still run and compile crap written in the '70s, and Windows 7 can do the same with apps for DOS and Win 3.11 with some tweaks and emulation.
it's all a matter of wanting to do things right in the first place.
of course modular programming sucks if you change mind every other major release.
the only possible drawback against modular is speed, anything else is bad programming.
i mean why for instance SMF doesnt store xxx custom fields for user profiles, so just who knows
in future releases they might get handy ?
no, they dont, and then you need mods and hacks to add a damn custom field.
and this is just the tip of the iceberg, dont let me talk about templates, the guys running SMF
seems to think you either use their default template or you'll be doomed with 100s of patches
and hacks and wasted time to run a damn forum the way it should be by default and with no
questions asked.
for all this reasons i stick with 1.1.xx as there's no real gain in getting crazy patching and fixing
the 2.0.xx , i'll wait till it stable, maybe in 2010.