Why not use triggers as reference points??
You can create them (but not set any properties for them of course) with camCreate... Their classname is "EmptyDetector"...
You just name the triggers like you would name your gamelogics/invHs/etc and you can get their positions, probably even direction (havent tested that one)...
For the main question I would say use gamelogics, since the game engine clearly tries to persuade a chopper to land on a invH so the chopper will estimate whether to land on that or not, and if it's not on a level ground it will try to find a level ground to land instead...
I would bet that causes a heck of a lot more cpu load than gamelogics...
Also, gamelogics use the simulation="invisible" (or something like that) which gives it it's own characteristics very different from say regular Man...
People always seem to forget the 'power' of simulations when comparing objects/etc..
Simulations are that hardcoded stuff that seem to tell to the game engine which values are used from a certain vehicle class for example..
So even if you put values that are used for a tank class vehicle on a car class vehicle they will not work because the simulation="car" disregards all the tank related stuff...
But this is just speculating and getting off-topic