You can, but... you need to think about things differently.
When you import GIS data into Blender, it will lose the attribute data especially if you use any of the available plugins. To import your data into Blender with attributes you will have to write your own script (as I don't know of one which does not simple import geometry).
The script will need to import each feature separately (all known current scripts, my own included, import an entire shapefile as a single Blender object). You will need your script to assign unique names to the features (which will happen by default but it's nice to control it). At this point you have two options. The first would be to write a separate script that associates the feature name to your attribute table and each select operation would search the table and then add features with a matching name to your selection. The alternative would be to store the attributes in Game Properties. As I write this, I would opt for the former approach (feature name and look up).
For spatial operations you again have two options. The first is to query your original GIS data from with Blender using the Python bindings for GDAL/OGR and then use the unquie feature name as your look-up for the 3D objects in Blender. Alternatively, if you want it more 'native' to Blender and less reliant on external data, then you need to start doing it like a computer games programmer. To do this you could use some of the border select API calls such as:
bpy.ops.view3d.select_circle, bpy.ops.view3d.select_border or bpy.ops.view3d.select_lasso etc. and define the geometry of the circle, box or lasso based on the proximity criteria. Another alternative is of course ray casting (cast a ray iteratively from you POI to each object in turn and add to your selection set based on distance and angle etc that the ray returns to you.
So, basically, you are half-way there using the set up you describe but the second half is probably easiest by having GDAL do the heavy lifting on external data and then relate the results to the objects in Blender by unique names (that's what I'd do!). I think this approach will also be faster and easier to script.
EDIT (following up on comment):
To turn your point clouds into objects, just treat the point cloud as a Particle system and have tree models on a hidden layer as your particle instance. I do this a lot and it is very straight forward from a modelling perspective. Your problem remains the selection methods as discussed above.