It definitely shouldn’t double compile-times, but it would probably add to them a little. My naive thinking is that you’d only have to pay for it if you’re using it. i.e. if you use an undeclared symbol while declaring a struct, the compiler will have to tuck it away for later and use it then.
Alternatively, the compiler could just postpone evaluation of the struct bodies until they are actually required, or until all top-level symbols in the module/script have been declared.
It shouldn’t be too expensive, if my musings are correct.