but now and again find out that they still have lessons to learn (orphans happen weekly)
These orphans have nothing to do with full nodes. They have to do with the propagation delay of blocks amongst mining pools.
In other words, if, say, an orphaned block appears on average once or twice a week, say about every 400 blocks, it means that it takes on average 600 seconds / 400 blocks =
1.5 seconds for mined blocks to propagate to all miner pools(rough estimation).
It means that within 1.5 seconds, a miner pool has received a valid block, has verified it, and starts mining a new block on top of it. So one out of 400 times, a pool has found, by coincidence, a competing block, before realizing that a competitor was faster.
(BTW, this also indicates why miners are most probably directly connected: they could never have such a low orphaning rate if the 1MB blocks propagated through the P2P network: the delays between sending a block and having all other miners stop their work and start mining on top of yours would be too long, and would cause much more orphaning).