Now I'm working with the reasoning of get whatever is rendered an not getting all the points in the dataset and choosing close ones.
My current algorithm is somewhat like this:
Have a geometry the layer coordinates
Get all the nodes that intersect with that geometry
Filter out the points that don't intersect with the geometry
Filter out the points that are not rendered like the inviible classes for classification rendering
Probably we should identify always just one closest point, using the list of nodes that were used also for map canvas rendering?
(Otherwise we are probably risking that we would be returning huge amounts of data in the identify results view)