Those concepts sound cool.
Keep in mind the whole Invisible system works in a somewhat weird way, with a separate XML file in BasicInfos that declares different types of invisibility, and each unit can get one type of <SeeInvisible> in unitinfos. This is potentially cool for things like spies, assassins, wandering minstrels, cloaked vessels etc etc; but if only visible units can block it would mean that you'd want to avoid discovering them.
I'd say for performance/stability it's fair to keep things simple as possible, & break if there is a unit present and plotgroup owner is at war with unit owner (ie an unarmed unit could potentially disrupt trade if it wanted.)