Over many years of electronics design and construction I have always used, say, to light an LED or pull a relay, a low on a logic output to do the job of sinking and have connected the 'other' end to a supply voltage.
This seems to me logical because, if suddenly a driver is required for more current then that is what they also do, so no reverse thinking.
I suddenly realised on my introduction to Arduino that the examples given for LEDs actually use the outputs to source the current and the 'other' end is grounded to the supply.
The logic outputs on the ATmega and a variety of modern logic devices consist of complimentary FETs so you can source or sink the same amount of current. The older TTL logic families could sink a lot more current than they could source so you would use a logic low.
Now that I am aware that the FET (with which I am not really familiar) will sink or source the same current then I must agree with what you say.
However beginners may then become confused when having to reverse their thinking when adding say ULN2803 or TTL. Hopefully by then they are no longer beginners.