First, the same warning you are referring to also says, exactly: “You can change the storage class without making a new copy of the object using a lifecycle rule.”
Second, to answer your prompt, the reason why the object is duplicated during a storage class change is because S3 is an object store and not a filesystem like you may assume. Performing a modification operation on an object does not change the object itself; instead a copy is made with modifications. When changing storage class, a copy is thus made. If you had used the lifecycle rule as the warning suggested, it would have performed your assumption: make the copy and delete the original object in the background.
P.S. Not trying to be abrasive :) I do though think you should considering hiring a real devops/cloud/sysadmin to manage AWS for you. If that is really not feasible for you, I suggest at the very least looking into setting up budget anomaly detection and alerting. You then might be able to have some visibility into your budget.