To recap:
I agree with Daniel on this summation. Yes, product costs do change over time and any report that gets the product cost from the field in the product table will provide inaccurate reports of the cost of goods (my own Statements module included).because it was the wrong way of doing things. every time you change that field you skew all the reports that were based on the old cost value.
However, the real issue is that it wasn't "complete". For accurate reporting of product costs, you also need to add a cost field to the order_product table, so that the cost of the product is added to the order at the time the product is purchased. Reports involving products costs can then use the value(s) stored in this table for reporting cost of goods.
Since any change in the cost of a product will have no impact on previously purchased products, this will provide an accurate means of reporting product costs.