I believe Init is a lower-level operation mode, and they added the audio paths later to abstract some details and avoid having to manually manage ports. This means that the newer method doesn't provide more flexibility here, but instead, less.
When audio paths are used, it is still possible to use PChannelInfo to query performance channels / port association. Hence, my understanding is that InitAudio still uses the performance the old way (and like it is implemented), but it handles the port allocation for the audio paths, and forbid the caller from messing with them.
With this in mind, I believe that InitAudio should call Init, and then adds some logic on top, not the other way around.
I'll have a look at the comments, see what you mean, and hopefully clarify them.