I feel we agree with each other to some extent.
We can reduce the scope of our discussion into this:
When the component is simple, passing callback or using redux is over-complicated. So we should use event delegation here.
I will respond to your point in two aspects.
Back in the time when I wrote this article, which is 2017. I would say it is a trade-off.
React prefer explicit and complicated code instead of implicit but simpler code. I would say you have your point, but React’s design does not encourage you to do this, which matches my title: discourage event delegation.
But back in 2020, we have context API, which allow you to share value between components. It is a solution given by React team to solve the problem in your example. I wonder do we still need event delegation when we have context API.
Besides our discussion, let’s jump out of the box.
Is it a must to use React?
If you have a lot of simple nested components, and redux make your code over complicated. Do we still need to use React?
May be native Javascript API or JQuery is a better choice for the application.
React is popular, but not a silver bullet.
If you find React brings more cons than pros,
using another framework may be a better decision.