Avid just published a nice blog post that discusses the I/O Setup in Pro Tools 12. These quotes are a few of the concepts that jumped out at me:
The way it works, is this: any busses in a session that are assigned to the monitor path on your system, will then become assigned to the monitor path of any new system that session travels to. This will ensure that the intended audio is always heard. The monitor path is indicated by a small studio monitor icon.
If you’ve received and opened a session from someone else, “Last Used” may not be the correct choice when creating a new session. You may find that you want your custom set of busses, which it is why it’s good to export a custom I/O Setting directly after creating it. Custom I/O’s can be accessed from the I/O Setting list when creating a new session. This way you can get back to your default every time. If a custom I/O setting is chosen, it will be remembered and chosen the next time you create another session.
The “Show Last Saved Setup” button has existed in I/O Setup for a long time, but it is far more responsive now. It will illuminate if anything has changed in I/O Setup since the last time the session was saved.
If you think about it, each playback engine is really a different I/O, likely with a different number of inputs, outputs, and physical connections. Opening a session on a different playback engine is really like opening it on a different system, so that’s how we treat it.