I think it would be best to remove all custom functionality into the realm of plugins. I believe this is what they are for, additional functionality. Adding what would best be suited for a plugin directly to a theme could cause bloat and more importantly confusion on behalf of the user.

Years ago I used to use a framework I built myself, which had a bunch of bells and whistles. Initially I thought this was cool and so did a lot of my clients. But, with WordPress constantly changing, these "bells and whistles" turned into headache and heartburn. This is why I have now moved towards building according to the WordPress Theme Standards. If a clients wants a particular piece of functionality, I now highly recommend using a plugin. Life is easier.

If everyone who developed themes followed "KISS", I believe that a vast majority of themes, both free and commercial would be in a better state. And I agree with Sarah, the hole that has been dug is pretty darn deep.

If i remember correctly, a few years ago everyone was screaming "Separate content from presentation". Now it seems we need to gravitate towards "Separate presentation from functionality".