The date control is checking the last date on the inventTrans record, meaning a warehouse movement or transfer actually makes it update this date and seem newer. Yes... It's a feature, not a bug... But I agree it is not what it seems. Does really a warehouse transfer mess this up?
The best solution is FEFO...
Or...
What we solved this with on a customer of mine was that we used a generated batch number on all receipts and used the date or PO as the batchnumber. Then we picked the first alphanumeric number at picking. This giving it a fairly structured sequence which picked the oldest first, no matter the amount of inventory transfers or warehouse.