Your plugins are the organs of your WordPress site. They are functional, and enhance content in ways other than just aesthetically.
Your theme is the skin of your WordPress site. It’s aesthetic, not primarily functional. In fact, done correctly, your theme could be even more like clothes than skin.
Themes change design and plugins change functionality. I should hypothetically (and of course never on the live site) be able to change my theme on a whim and not lose anything in the shuffle. Things like shortcodes (which affect functionality and content) should not be bundled into your theme.
Pop quiz: sermons. If your church website keeps an archive of sermons, should that functionality be controlled by a theme or a plugin?
Easy call: plugin. If your DIY church theme includes shortcodes for displaying sermons, it’s doing too much. When you want to change the look of the site, you’re going to break the sermon archive. Developers call this “theme lock-in” because it means you are locked into the theme for more than just the feel of the site. If that functionality is running through a plugin, changing the theme will just mean design tweaks for your sermon archive.
Next example: Mobile responsive site. Should the display of your site on different sized devices be controlled by a theme or a plugin?
Again, easy call: theme. How your site changes design based on the device is a theme decision. I see these plugins out there that basically hijack your site and send them to m.yoursite.com or something, and it makes me cry. Now not only are you getting dinged on SEO (potentially) for having two different sites, but when you change themes, you have to go and re-style your mobile site to match.
The problem with WordPress themes and plugins is that there’s not a pre-existing standard guiding them. And the market has demanded these themes that do EVERYTHING. Users end up locked into themes, because to switch would be days and weeks of pulling apart the content from the design. Keep the content and functionality as separated from the design as possible, and then a theme change is not a painful affair.
As you are designing your site, keep in mind that if your theme is doing a plugin’s job, it’ll make “changing your shirt” more like “doing a lung transplant” when it comes time to switch themes.