I always liked the Code View / Design View patterns in Visual Studio so I choose to emulate this in IsWiX. Another aspect of this is to have one source file maintained by a code emitter and another source file maintained manually by the developer using a text editor. Think Foo.cs and Foo.Designer.cs in Winforms or XAML / CS in WPF.
Usually you can mark up IsWiX authored XML without problems ( add various element such as ServiceInstall, ServiceControl, ShortCut and so on ) but sometimes you need to add an element that might cause IsWiX issues ( Component typically ) or that you want to really add a lot of custom action elements and related sequencing and you really want that code in another file for readability.
To solve this problem I like to create a second .wxs file and use the Fragment element. Then with the use of ComponentGroup, ComponentGroupRef, DirectoryRef, Directory and Component elements you can tie the two together. This is sometimes a little hard to explain to a new WiX developer so I decided to make this the default experience in IsWiX merge module projects going forward. With that said, go check it out here.