okay, so i would unconditionally overwrite the default? is this really the way how we are supposed to make sure the format is not lost? does core routing do the same or how does it work there?

detaching sounds like a viable solution, although if somebody later in the request edits the route i.e. by getting it from the content object, this would no longer work.