Currently, if you want to run a tool in a model for a small subset of features you have to make a selection in a layer. If this selecting returns any features, that's great - a tool would proceed only on this subset. Otherwise, if there are no features selected a tool will run on all the features in the layer. The processing can take ages if there are a lot of features. Now some additional custom python scripting is needed to check if the selection is empty and stop the processing.
It would be very convenient to have some kind of an environment setting on a tool to choose either you want to run on the layer if it has no selected features or not.