I just wanted to know which are the practical/cost implications of enabling the bucket versioning option.
If you enable versioning, all prior versions of an object will be stored whenever it is modified (at standard S3 rates). So if you have a single object, and modify it 4 times, it will be the same as storing 5 objects in the bucket (current and 4 prior versions).
You are charged by the total size of object, so if you have two version of an object (with different size) you are charge for the sum of the objets size. So enabling versioning is free, but use versioning come at a cost. In practice, you can check for versioned object and remove the one that do not need to be keep, but it protect you from unexpected delation as you have to do multiple step in order to remove a versioned object from a bucket.