The tags in the String taglib which extend StringTagSupport are broken for containers which reuse tag handler instances. The problem is in StringTagSupport.java, where initAttributes() is being called from within doEndTag(). Since the container is not required to reinitialise the attributes for a tag handler instance if they have the same values - which they might do in a loop, for example - the tag produces incorrect results after the first call. The fix is simply to remove the call to initAttributes() from doEndTag().
This is fixed in the CVS tree and highlighted on the website [or will be when the website changes propagate through].