[Swift 5.2] Struct + Property Wrapper didSet defect?

This pitch seems closely related and AFAICT explains your observed current behaviour: Allow Property Wrappers with Multiple Arguments to Defer Initialization when wrappedValue is not Specified

Namely, wrapped properties get immediately initialised at their declaration if a default value is provided there; assigning them in the initialiser then counts as reassignment and that's why didSet gets (IMO somewhat unexpectedly) called.

If the pitched proposal were to be adopted then neither didSet would get called in your example.