>And the subscriptions are not shared between MAVLink packets.

What do you mean under "MAVLink packets", maybe MavlinkStream instances? then they ARE shared: https://github.com/PX4/Firmware/blob/master/src/modules/mavlink/mavlink_main.cpp#L1571
This way we save a lot of uORB subscriptions.