Optimization is way out of scope for this rant so… yeah.
Sometimes, index or no index, you’re forced to make some really ugly queries out of necessity given unruly tables or bizarre business logic.
Complex ON clauses tend to torture optimizers no matter what, especially MySQL’s derpy one. So in the 1% chance that you’re forced to use them, someone’s going to be crying no matter what.