I've taken a quick look of them. These are the issues and other suggestions.
[1] The (global) variable rezeptgebbefr would set up a node of its own. Hence, when you insert it to the page, it is not xsl:value-of which would result in concat its text. Instead, you ought to use xsl:copy-of.
[2] When you define the (global) variable rezeptgebbefr, two fine points you've to taken care of.
[2.1] Your html carries the xhtml namespace. In order to keep form and input in that namespace as well (for consistency purpose), their direct constructor has to make their namespace explicit (that's the way it performs - and one can sure hope it make their way in automatically, but it is just not to do it without telling.)
[2.2] Here is another less well-known element. Since the templates going to be applied serve some special purpose with special construction. In order not to interfere with other possibly less specific templates matching the same element rezeptgebuehrenbefreiung, you better
fence it with a mode attribute with some specific but arbitrary value, say "form-construct". The variable would look like this.
[3] Related to [2] is to set up the mode for the template actually run. Also this time I would add an xsl:for-each to make the logic more explicit.
The radio buttons will be rendered in the output. Whether it appears or not, it depends on the chain of template matchings. It may or may not called. But if it is called at all in the xslt, the radio buttons and the form would appear in the output html.