There are no universal best practices. Do what makes sense in your situation. For example, what's more valuable to you: saving disk space and having complicated logic or paying the disk price for clean logic and easy updates?
Disk space is cheap (and can be unlimited), time* is more expensive and is limited. Your call.
(* developer salary, time to market, time spent on debugging, etc.)