I'm glad you liked the article, Chris.
I actually considered rewriting the article to use CGLIB at one point. It does seem a much better match for much of what I was trying to do. Part of the purpose of the article was to expose some of the details, though, so I think the BCEL implementation works a bit better as a learning tool (at least for those who aren't scared away by details).
One example is the call to create_arg_array, which
pushes an Object onto the stack with all arguments
to the current method, wrapping as necessary
Funny. In the second half of the article I will be complaining about BCEL's lack of ability to do that! Thanks for the tip.