With most of my sites, sprinkling in the functionality within the theme seemed the logical way to go. For example, a site with a 'product' post type, or a few options in a meta box or setting page.
On a couple of much larger projects though, it would've been crazy to keep it all in the theme, & was a lot easier to abstract the functioniality into reusable plugins.
But now I'm at the stage where the requirements are so specific, I'm writing a bespoke plugin to work alongside the theme, and I'm struggling with deciding what (if anything) should remain in the theme or go in the plugin (& furthermore, to break up the plugin into several to handle each component of the site).
It'd be great to hear of other similar situations, & generally how you guys approach large scale projects on WordPress.