Actually nearestObject does return bushes etc...
When used in 'non-comref' style it will return *.p3d names of the objects...
It also seems to return the object ID too...
I don't know why I didn't get this to work earlier altough I used the exact same method...
I did something wrong obviously...
Try this:
Put player on some map (which has objects), then put a trigger activated by radio alpha or something and repeatedly...
Then in the on Act field:
hint format ["%1",nearestObject [(position player select 0)+5*sin(direction player),(position player select 1)+5*cos(direction player),position player select 2]]
Now, run to some objects and press 0-0-1 or whatever radio you assigned the trigger to...
You will see different kind of names popping up, like cesta25 which crossreferenced into OFP models is cesta25.p3d which is a piece of road...
EDIT:
The height thing is an interesting idea, but I think the accuracy would be patchy
If it's good enough for CoC then it should not be too patchy...
Altough this needs to be experimented on, of course...