As a library maintainer I agree with Stanislav Malyshev . I'm currently working on a polyfill in League\Csv to enable usage of the empty string with the escape character. While providing such feature is straightforward for the insertion part, doing the same for the reading part in quite complex because of how PHP fgetcsv works.
Removing the escape character from fgetcsv means that any decent library will have to provide a polyfill to enable correctly reading legacy CSV produced with the escape character. And quite frankly seeing how broken the escape character implementation is, it's easier to keep it in PHP codebase to ease parsing while making sure it is no longer the default. So while I would prefer to have a PHP9 free of the escape character mechanism keeping the mechanism via the fgetcsv function for legacy purposes seems reasonable. Of course, this should be highlighted in the documentation.
