You're right, I don't know a way) to only do it when it's empty.
But the way "Full" works starts at like 95% full. And everything works pretty well when working with full storage.
"inefficient" is clearly objective. As I consider my set up to be fairly efficient, while using storage containing thousands of logs.
Bot's waiting at an empty log storage to grab a log to make the next thing (like planks) sounds inefficient to me. - But now, perhaps i'm the one missing something. :).