Yes I remember reading that post on managing midi ports many years ago. Even then :
"Because too many programmers wrote MIDI applications that hog the inputs/outputs, some manufacturers of sound cards and MIDI interfaces started shipping multiclient drivers with their products.
A multiclient (sometimes called multi-instance) driver is one which allows more than one application to open a MIDI input or output (ie, more than one call to midiOutOpen or midiInOpen to succeed). In essense, the driver lets two or more applications simultaneously open a MIDI input/output, unbeknowst to each other, and the driver itself tries to manage (ie, mix) their MIDI output, and also provides the applications separate copies of each incoming MIDI message.
I think most (reliable) MIDI interfaces nowadays are in fact multi-client and perhaps MS Midi Mapper was sophisticated enough to share an output port in this way.
To answer your questions though:
Pre Win8 I could run my in-app MidiFile player through the same output port as my apps' patch editor. The Midifile player used the Multimedia API MCI sequencer and it's output device was set to the MIDI Mapper.
Post Win8 I can either use the output port for patch editing or I can play a midifile but as you say midiOutOpen is single client. This applies to any output device including Coolsoft MIDI Mapper.
The link on managing ports goes on to describe how to implement MIDI port "sharing" between apps. But it isn't really sharing as it just describes one way of signalling when app A needs the port so that appB can close it and A then has exclusive access.
Until a better solution come along though I'm pretty much resigned to this fudge.
Perhaps the new universal windows app MIDI API will eventually provide a way of making MIDI devices properly usable as Multi Client.
Thanks for spending time on this issue - it helped me clarify my thinking