First thing would be that it would tank perforce, right now Tile visiblity can lag game if you have 60+ range and this is calucalte on tile-level.
Unit visibility is done on voxel-level, your solder "shoot" from eye and if he "hit" something it will be visible. this is around 20 more costly that
calculations on tile-level.
The tile-visibility is done anyways and it is done before the unit-visibility-check as UpdateTilesInFOW is called before UpdateUnitsInFOW.
The unit-visibility-check only is done for tiles that actually contain units in a method called "visible".
Just adding an "if(!currentUnit->hasVisibleTile(tile)) return false;" would only access the cached tile-visibility that has already been done anyways. I'm not seeing how that would impact performance in a negative way. If anything it would actually save time because the more expensive unit-visibility check on the voxel-level could be skipped.
Reading your reply again, it seems you misunderstood my intention and got it backwards. I don't want to create consistency by elevating the tile-visibility-checks to use voxel-logic. The opposite is the case: I want to create consistency by making units not visibile when the tile isn't visible.
The logic being: "If I can't see there's a tree behind the tree, I also shouldn't be able to see the spider behind the tree."