yes, the specification does mention about the reuse of classic custom tags whereas for simple tags and tag files, new instances are created on every invocation.
its a good idea to reinitialize the values of instance variables after your custom tag finishes its work. say you have some instance variables in your custom tag as:
String s and int i. So in the body of doEndTag, just before it returns EVAL_PAGE or SKIP_PAGE, type s="" and i=0. Dont rely on any specific containers behaviour if you want portability.