Microsoft and MSI's make for fun times, we currently generate a new ProductCode when installing the application, it doesn't quite work in combination with signing (:
I've been wondering the same as well for my job, we have code split into DLL's though we're not super heavily using it it's more of a mechanism that was used 30 years ago and we stuck it