Just "bought" implies that the sale of the books is compassed in the past. It sounds strange because no explicit compass is mentioned and the reader suspects they are still for sale. I don't see anything wrong with "at least" though. Note that "over" changes the meaning (>= vs. >) and at least some prescriptivists obelize using "over" like that (I believe the AP Stylebook used to).
But in idiomatic spoken English, at least in the US, people omit that have. I agree that it's there for more formal or more British English.
Also, what you're describing goes beyond native level English and reaches the level of professional writer/teacher/linguist/editor/etc level English. I would expect many HN readers to have English proficiency beyond native level.
You have got to be kidding me. I'm a native English speaker and the sentence sounds totally fine the way he wrote it. Plenty of native speakers could have produced it and I'm not even totally convinced (though it might be true I guess) that the other two are statistically more common
Speaking idiomatic English is irrelevant in technical or professional discourse however. His point is clearly made, even if it is not the most natural syntax/semantics possible.
"At least 5000 people bought my books..."
Don't ask me why, but to me it should read instead:
"at least 5000 people have bought my books,"
or even:
"over 5000 people have bought my books."
[0] https://news.ycombinator.com/user?id=Swizec