Original Problem: sometimes users creates invoice without corresponding shipment. This cause problem with storage levels. Other cases described in related forum thread.
Solution: We agree here (x-ref: https://groups.google.com/forum/#!topic/idempiere/ARx1qhwbtiw) with about resolving this issue with extending document type by checkbox "Product Without Order Not Allowed". By activating this new checkbox admin can prevent above mentioned problem.
We extend document base types AR Invoice and AR Credit Memo with new field C_DocType.IsProductWithoutOrderAllowed - the field must be visible just for DocBaseType ARI and ARC - and the validation must check if the invoice line with a product is based on an order line.