for 1.x workarounds are inevitable, you might as well make a custom new component. It just wasn't initially made to be easily reusable.
For 2.x it was completely refactored to allow reusing it in different contexts (which addresses the issue you're referencing).
You might be able to copy the 2.x component code to your extension. I don't remember if it's that easy though.