Right. I guess majority of my pushes are smallish single-commit ones, which IMHO do not warrant visible merges (I guess this depends a bit on the project and the workflow, though). For bigger stuff I normally do what you desribed (though often they don't get visible merges either, if I send them via email to upstream who then uses git am).
And after thinking about this a bit more, while I run "git pull --rebase" very often, most times it is on the upstream-tracking branch so "git pull" should actually work just the same.
That is, unless I've made some quick fix commit in the upstream-tracking branch before send-emailing it (when I've forgotten to create a branch for it), in which case "git pull" would do a merge while "git pull --rebase" would usually drop the local one. As said, though, that shouldn't happen :)