A non-existing tag is not transformed in Enlive. This is quite clever since it decouples the design from the transforms, a designer can add or remove tags to control what is shown.
In your case you want to make sure that a head is added if it doesn't exist already, which get's a bit strange of the reasons you mention. It would be much easier if there was guarantees of a place-holder in the template.
Could something like having a meta-template with a (default) header and body make sense? Then you could use #'substitute to replace the head-tag if the template you want to render have a head-tag.
If you want to use code like the one you already have, I would make the transform in two steps, first make looking for a head-tag and if it didn't exist, I would add it.
In the next step I would add CSS-links in the header, which is now guaranteed to exist.
/Linus