Beleive me guys , thats not the normal behaviour and it woudn't happens at its own.
There are many reason if that happens with your sales Order .
1.Some is updated the Sales Orders and set the open flag = N , as well as FORCE the Workflow.
2.WAITFORDETAIL attribute for Order header is 0 , where as there are still open lines .
select number_value from wf_item_attribute_values w
where name ='#WAITFORDETAIL'
and item_key = '&Enter_Order_header_id'
(select 1 from oe_order_lines_all
where header_id = to_number(w.item_key)
and open_flag ='N');
3.Last but not the least , someone has purged the workflow for the order lines , and that leads to close of order header workflow