This seems the most logical of all the discussion. Make the <poem> produce <div class="poem"> and <poem class="Foo"> <div class="Foo">. It may seem strange a poem of recipe class but could be the solution for all this problematic.
"Rob Church" wrote:
The main argument boils down to semantics. The output is wrapped in
<div class="poem">, meaning that people can opt to see poems formatted in a specific manner. This formatting might not need to be applied to non-poem texts, or it might be otherwise undesirable. In short, it comes down to "don't mark up non poems as poems".
It would be somewhat trivial to expand the extension to allow customising the class output according to the tag used; if another use case pops up, we can add another tag and class combination.
Rob Church