Oh well, I just found out part of my answer: busInfo = Simulink.Bus.createObject(model,{InPort or OutPort handle})
The only remaining item is to find out if a bus element is used inside the Subsystem. I assume that Simulink/Compiler knows that information since it optimizes the code accordingly.