The <i18n:message> tag incorrectly resets the args ArrayList in release() instead of startTag(). Message arguments passed to prior invocations of the <i18n:message> tag in a page end up being used in subsequent uses of the tag in the same page. This makes argument substitution unusable.
In general the message tag was not designed to work well in JSP containers which use custom tag pooling. Each time the message tag is now invoked the args shoul be unique for that invocation. Should be available in the next nightly build.