If I use the midi preset name to associate the midi preset with a song then I feel I am somehow breaking the rules and creating duplicate information. If the song name changes I need to update the associated midi presets prefixed with this song name. It also clutters my bank of midi presets that currently represent one patch per instrument. Feels a bit messy.
MIDI presets are deliberately NOT tied to songs because you might want to use the same preset for multiple songs. In this case you would name your presets something like "church organ" or "80's synth" and then you could attach them to any number of songs, without the need to recreate the same MIDI presets over and over again.
Taking your approach further, I see there are two possibilities of acheiving the group in the current release.
1. Standalone midi preset with multiple device program changes.
2. Standalone midi preset with multiple other midi presets added.
Would both approaches work in the same way? what is the intended use case for each approach / design intent?
I would only recommend the second option if you want to mix and match the settings for different devices. For example, if you have two keyboards, and you always use a program on the first keyboard in conjunction with a program on the second keyboard, it would be more efficient to put both programs into the same preset. On the other hand, if you want to set up different combinations of the two keyboards' programs for different songs, then you could create a separate MIDI preset for each program on each keyboard, then create parent presets that combine them in different ways, and attach the parent presets to your song. Even then, it might still be more efficient to create a single preset for each song, if the MIDI data sent to each device is as simple as a program change. The ability to chain presets together is more useful if you need to send sysex or other more complicated messages and don't want to reenter the same data into different presets to create different combinations.