Почему в качестве обработчиков событий класса нежелательно использовать стрелочные функции?
В этой статье (на англ.) называют такие минусы:

стрелочные не попадают в прототип. Поэтому не получится с наследованием вызвать super.method()
тормоза. Тесты показывают, что со стрелочными код работает много медленнее, чем с традиционными function, пусть и после .bind()

Цитата с того ответа на SO, который вы дали:
First the memory and performance; When you use a class field to define a function, your whole method resides on each instance of the class and NOT on the prototype, but using the bind technic, just a small callback is stored on each instance, which calls your method that is stored on the prototype.

Second thing that can be affected is how you write your unit tests. You won't be able to use the component prototype to stub on function calls like below:
1. Если используешь стрелочную функцию, то у тебя для каждого экземпляра компонента будет создаваться новый экземпляр функции. Если использовать bind - функция будет только одна, в прототипе.
2. Что-то про тесты, но с этим я лично не сталкивался.

Чтобы сохранять читабельность - можно использовать плагин для бабеля:
@babel/plugin-transform-arrow-functions
или что-то типа autobind-decorator