Thanks for the confirmation Matt! It's a bummer that this is the current solution for the scenario above given the elegance of Observable.
I don't believe that it's intentional, but a number of the recent (and big) API additions by Apple (Observable, SwiftData, et al.) don't seem especially compatible with "traditional" patterns like MVVM, MVP and the like.