For instance, take this piece of code:
var person = new Person();
or for you Pythonistas:
person = Person()
I
I use this pattern a lot in method signatures. If I'm unable to provide an alternate descriptive name then IMHO, there is nothing wrong with this.
What is wrong would be if you have two types Person and person then that is very very wrong.
I suppose I'll get downvoted for saying so, but ...
Having just come through a century witnessing epic murder and greed, we programmers are truly blessed if the most immoral thing we can do is name a variable.