The effective date is used to represent when the shipment is really received (thus it may be diferent from the planned_date). Having a planned does not mean that the shipment should be received on this date:
For example I may have a shipment planned for yesterday but not received until today.
Normally Tryton expects the user to enter data is realtime, so when you do a move it’s effective date is set to today. But we allow the user to edit the effective date just in case he is encoding moves done in a diferent date.
I think this behaviour is correct and it should not be changed.
There is the plan to prevent setting efective dates on the future.