Today, a slew of Satin objects do not consume a context prior to init, but do for some subset of functionality which then triggers re-setup or on context property / device property some dependency mechanism to run / get re run.
Ideally context is known before hand, and we likely wont ever need to change MTL Devices ( ? is there any time that happens anymore on apple silicon systems?)