During SE-0242 (https://forums.swift.org/t/se-0242-synthesize-default-values-for-the-memberwise-initializer/20618/1), there was discussion about how the compiler currently treats initializers for structs and classes.
This behavior does not occur with memberwise initializers because they are lowered differently, but user defined initializers all have this same behavior.
Accepting rationale stated that the core team felt this behavior was a bug
This is a somewhat complicated issue and I plan to write a much longer topic on the forums discussing this and getting some feedback there. I'll post the link here when I get done writing it.