I have came up with a workaround solution recently. It's a kludge, but it works. Here is what you have to do:
- create a profile containing all mappings for your "basic profile", i.e. the ones that should be the same in all profiles. I call this one the CORE profile.
- create a new empty profile and map all the functions, e.g. for develop module, that have to be in this profile, except for those already in CORE profile. Let's call this one CORE_DEV.
- open your favorite text editor and manually paste the lines from both CORE_DEV and CORE to make a new final profile for, in this case, develop module. Save it as a new file, let's call it simply DEV.
- optionally, you can add a comment tag between the two segments of profile if you want, which will make further editing much easier, like this:
<!-- your XML comment text goes here -->
Keep in mind though, that for this approach to work well, you can't change and then save the final profiles via the plugin any more, otherwise the plugin will remove all the comment lines and will also shuffle the mapping lines inside the xml file. From now on, in order to make changes to the final profile, you will have to edit the CORE profiles only (the usual way, through the plugin), and then merge them into the final profiles by hand.
The process is highly manual and requires you to also keep an eye on your mappings so you don't have several functions assigned to the single controller CC/button. I found that it's easier to track this using Excel or other spreadsheet software as it allows you to sort the data, check for duplicates and then copy the data back to the xml file easily. Thankfully, the xml/plugin treats tab and space equally.
You can use additional comment fields in the spreadsheet (that you won't copy into the profile itself) to make an ad-hoc profile builder. I suppose it's quite possible to make a spreadsheet-based solution with interactive graphical layout on one page, all the API calls and MIDI2LR profile variables on another, and with the final xml-ready output on the third page.