It's not adding anything, but it is also not removing the left over whitespace text nodes between the elements in the original XML. If your XML has no mixed content then the simplest approach is to remove all the whitespace-only text nodes and then re-indent the result tree:
<xsl:strip-space elements="*" />
<xsl:output omit-xml-declaration="yes" method="xml" version="1.0" indent="yes" />
If you need to preserve the indentation from the original XML then you need to be slightly more creative
<xsl:template match="*[not(child::node())]"/>
<xsl:template match="text()[not(normalize-space())]
[preceding-sibling::node()[1][self::*][not(child::node())]]" />
The second template will squash whitespace-only text nodes that immediately follow an element that has been squashed by the first template.