and thus the reason that it's free
I've been tossing other ideas around for intercepting at a lower level to replace the URLs, but I haven't come up with anything solid yet. But as you said, performance does take a hit, so if we can't figure out a way to speed it up sufficiently, I'll probably go the DSEFU route of IF-statements in the template files (that method doesn't lend itself well to users that have a fully customized theme, though)
Alternatively, could provide a script with the mod, that would backup the user's specified theme, and then recreate the theme with all of the url structures rewritten to .html instead of .php (as needed). Then assuming we hook in to the proper areas with the mod and catch any urls that were generated dynamically by x-cart, that should remove any need for the outputfilter
we'll see, hopefully the solution will be painless