The writing here is pretty good, but I'm afraid that I have to disagree here.
It's ALWAYS a bad idea to initialize and assign a view model directly to an ObservedObject:
@ObservedObject var viewModel = ViewModel()
Or to initialize it in a parent view and pass it into a child view's observed object.
ChildView(viewModel: ViewModel())
Your rationale regarding safety consists primarily of "knowing" where the view lies in hierarchy and not caring whether or not it can suddenly lose state.
The biggest problem is that you're making two major assumptions:
First is that you're positive you know exactly when and how many times SwiftUI is going to evaluate your view. Your example already has an issue this in this regard, in that a user could scroll the view and send an edited field off the screen, losing state.
The second problem is that you're assuming that someone else on a development team else isn't going to change the hierarchy, install a new parent or root view, or even decided to use your view elsewhere.... setting off a ticking time bomb.
ObservedObject should ONLY be used when some parent has a hard reference to the observable object, usually via StateObject.
More on why here:
https://betterprogramming.pub/swiftui-the-unsafeobservedobject-quiz-467bb8554262