Optimisation isn't a big deal.
Or to be more precise, optimisation is probably not what you think.
Check this manual entry as well as this one.
They both present what elements/best practices really make a difference as far as optimisation goes.
There's also this blog article from Ashley : optimisation: don't waste your time.
That's it for optimisation.
For your issue, indeed an invisible sprite could do the job.
Perhaps explaining clearly what you're trying to do and posting the capx of your project for us to see the settings would help answer you in a definitive way.
But if you've found a way that's working, just keep with it. As long as it does not mess with the rest of the project it's good enough.
Also you can, instead of checking for an overlap, check for a distance between Sprite and Sprite2.
Such example is listed in the how do I FAQ.