Use of ejbSelectXXX() or findXXX() methods depends wholly on the decision of the developer.
One requirement could be that, If our requirements demands that client should be able to use the result of the query, then we should go for findXXX() method.
However if we need the result for processing within the bean and we do not want to expose the result directly to the client, then, we should go for ejbSelectXXX() method.
Decision can be made also on how we want the Transaction Context to be handled. ejbSelectXXX() methods are run in the same transaction context as the called method, whereas findXXX() execute as the attributes defind by the bean provider.