Founder and CEO of CodeKitchen and a long term WordPress core contributor.
I contributed to 5 version of WordPress and was a recent rockstar of 3.4 due my work on the XML-RPC. In WordPress 3.5 I rewrote all the image manipulation code. I'm currently busy with improving the media flow more and making the next steps for the database class of WordPress
I run my own sites in a network installation. You have the same possibilities to customize the sites but you will have the advantage that you can enable plugins network wide. But if you want, you can just enable a plugin per site. So as long as it's data stored in the database, you can customize whatever you want. So let the theme use all the benefits of the WordPress Customizer.
What I did for my own sites is to have all plugins of WordPress.org still in the plugins folder and the code I wrote in special foders in mu-plugins. I wrote some custom logic to load the code.
You can safely do quite a lot of things. The problem is when code can behave differently in different scenarios. So when you update a plugin, it can work good on one site but not on the other. However, I haven't experienced that myself.
If you need more in depth help, then let me know.