I have one doubt regarding why Microsoft provided an opportunity to post the actual costs when ever you want by using the batch job Post cost - to G/L.
( I know if i place a check mark automatic cost posting then it will post to G\L for every transaction)
why they had given this opportunity to only inventory ( except customer, vendor, fixed assests)
What autmatic cost posting can not do is: It can not update dependet costs. Especially manufacturing.
I.e. A production order is finished where one of the items cosumed is not invoiced yet. Here, the automatic cost posting will update the cost of the consumed item when it is invoiced. But it will not be able to carry on the difference to the posted expected costs of the output item.
This is where the ACIE is required. for above mentioned and many more scenarios.
The accounting for inventory is different across businesses, some do not want a system generating this, they take the opening balance, add goods in and remove current balance to get your cogs value. This can be done without ever bothering with posting and inventory costs.
Additionally the inventory routine has altered every version since inception and therefore the role of this routine has altered over time.