I understand the point about choosing the shortest name that clearly conveys the meaning of variable but scope seems irrelevant to me. Whether it's used in a single function or a class or a library, the name has to be clear no?
And using i & j as examples is cheating -- everyone who learns programming, knows i & j the loop variable context. Without that learnt context index will be a better choice.
With editors, it's not like you need to type the variable name fully. (look at me, someone who's not coded a long time debating with Mattn-san 🤦♀️)