Yes and no.
The _once is used to prevent conflict, so it won't attempt to reimport to the symbols table if it already has been (which would throw fatal for anything being redeclared such as functions). But it comes at overhead, so its a tradeoff. I find in OO development, its just far easier to use _once at let it do its thing than to figure out exactly where everything is chaining to my use commands. I haven't a clue what its actually doing under the hood on the use calls though; I've always assumed its the same as issuing a require_once.