the upstream kernel implementation of unifdef supports an option "-B" which instead of converting stripped lines into whitespace, attempts to compress whitespace around stripped out sections (ie: sections of code which are removed in the output) so that only a single whitespace line is retained.
Essentially, it converts
<blank line=""></blank>
ifdef SOMETHING
endif
<blank line="">
</blank>
into
<blank line="">
</blank>
and prevents from having to do funky things like
ifdef SOMETHING
<blank line="">
</blank>
endif
which tends to be ugly if you maintain a single source of unstripped code which then gets processed into configuration used as external sources.
This is a feature which coan doesn't currently have, but I don't think it would take too much work to implement it in a similar way to how unifdef does it.