We wanted a clean way of deploying masterpages, CSS, images and other branding files cleanly and easily to multiple site collections without the need to modify the files in each site collection whenever something changes.
We used a branding feature that copied the branding files, switched the masterpages, set the logo and favicon, and applied the same branding to all subsites in the site collection.
This guide was incredibly useful as it goes through the steps required to create a basic feature that copies the files, activates the masterpage and applies branding to subsites during activation. When the feature is deactivated, it switches the masterpage back to v4.master.
This was excellent, except that we wanted to go further and make the feature delete the branding files when it was deactivated.
We found another guide that does the trick
Now we have a feature that can be use to enable branding on any site collection with a click of a button! Modifications can also be easily applied to all site collections by updating the feature/solution.