Initializing the wrapper differently is also necessary for the closure parameter design in this proposal. If (@Wrapper value: Int) -> Void means the function type is (Int) -> Void, then property wrapper parameters cannot be utilized to opt into property wrapper syntax for closures that take in wrapper types. The best you'd be able to do for the Binding example in the proposal/up-thread is declare a local property wrapper and initialize it out-of-line using the backing storage directly:
ForEach($shoppingItems) { binding in
@Binding item: Item
_item = binding
TextField(item.name, $item.name)
}
I realized that this might not be obvious, but not all property wrappers support init(wrappedValue:). Changing the transformation to be callee-side would mean that this feature can never be used for property wrappers that need to be initialized differently.