Re (1), perhaps instead of an option, have different commands? "Find and Pick" to get from storage only, "Find and Mine" to get from raw resource piles only, and maybe a "Find and Get" which would get from either? As it is, it reminds me of how "Smart" phones like to "auto-correct" with the wrong correction... But at least with those you can choose to force it to your desired result.
As map size and game complexity grows. it will become less likely to have a single storage box dedicated to each item. Instead, transport lines will evolve: CMs will mine and deposit raw goods in areas where they are found, while other CMs will transport from those collection centers to different production areas where they are needed. (A true "ideal" would be a distribution "on demand", instead of "equally spread out"...)
In reality, a well-designed distribution is the opposite of "one specific storage", but a need to locate one of possibly many storage and staging sites with the desired item -- the lower cost of finding it outweighs the larger cost of walking across the map only to discover the single storage site is empty.
(2) That is not entirely true. A program can use logic to avoid wasted CPU or I/O. If a file is exactly 2 bytes in size, and you have already read 2 bytes, you know trying to read it again will give an EOF. Likewise, a CM knows if it is occupying the space requested, and nothing else is (or can, as the game is currently designed), it can skip trying to take take a step backwards to try to grab the space it just vacated.
A general "Find" feature would be a suitable alternative. But you can still assume that the CM has sensors (i.e., eyes) and can already know the command will fail.