Eve Maler, one of the best DTD experts I know, told me that using a parameter entity in this way, to help build the value of another internal entity, is a really bad idea. So much so that she wanted to suppress this example in the spec. I can't actually imagine why you'd do this, but the rule did need illustration, so she lost that argument. But I'd take her advice seriously.
Back-link to specCopyright © 1998, Tim Bray. All rights reserved.