No it’s not. Deleting 4B objects costs $20, via DELETE and LIST requests.
As the article says DELETEs are free and you can do bulk deletes of 1000 objects at a time. However you need to have the object names. You get those using LIST, which gives you 1000 items for each request. LISTs are currently priced at $0.005 per 1000 List requests. So $0.005 to delete 1M objects. Using the “empty bucket” feature does this internally and charges you that exact same amount.
The only way you get near your price is if you try to delete by applying a new lifecycle policy to 4B objects that are not in Standard storage.
If you can select your objects with a lifecycle policy (by object tag or prefix) you don't need the LISTs either. The prefix can be "" to select all objects. Just be careful with that.
S3 isn't really built for lots of small objects, which is also quite tellingly reflected in its pricing (and performance in dealing with those).
Right now, anything less than 400KB should really be plonked into its cousin, DynamoDB.
Other than that, I fully expect AWS to announce a new S3 bucket type (and pricing) for high-volume, small-size blobs. There is also a small matter of addressing Cloudflare R2, which should result in a Lighsail-EC2-esque fork of S3.