you don't want to use 2 slow functions at one time....
they aren't that slow
also, the c_trace is only executed when an entity is found,
and you can have hunderds of c_traces in a ms.
also, you only use it for the player, not for many entities.
you could also run thourgh all entities manually, and compare their distance to the player. I don't know if that is faster....
I think you should go for the c_scan+c_trace combination. it can't be that bad!