I've recently reviewed a handful of Emboss definitions where the author intends to tightly pack a struct with $next, but doing so after conditional blocks leaves a "gap" in the structure so that it is not tightly packed. This has been surprising for the author each time, and it seems like this behavior is a bit unintuitive.
We should consider either updating $next to handle this case as the author likely intends or, if this behavior must be maintained for backward-compatibility, provide an alternative built-in for doing this.