I'm just a user as well, and sure the official supporters here could say more about this, but I guess what you want would cause major programming.
However, since I have a similar 'problem', meaning it not making sense comparing products from mixed categories, but loving the 'compare' option where it makes sense, I chose a different but working solution:
In product listing views showing a mix of products from different categories, and only in these, hide the 'compare' part with CSS and "display:none;". Applying it to the proper id's and classes, it's simple, effective, and doesn't even require editing a view if you're not comfortable with PHP.
Good luck!