Pros/Cons of using Theme instead of Plugin for customization

Wow the replies here are golden I have very little to add here.

The only thing I think is important to add is that internally at Discourse we are making strides to break some plugins now into “plugin for backend” and “theme for frontend”. We are thinking about this “distribution” challenge when stuff is mixed like this.

Overall my incredibly strong recommendation is only fallback to creating plugins if you absolutely need plugins. When you need to amend the Ruby backend you have no choice. A plugin that only makes changes to frontend is strongly discouraged. It is harder to keep up to date and far less flexible when it comes to usage.