I would like CodeIgniter to not rely on specific PSR interfaces as they change over time, and rather store its data in a simple array/object format.
For example, if CI has PSR X for logging and a third-party library asks for PSR Y then it is all just messy stuff.
The same applies to requests/responses etc.
An average developer can't handle this.
Further, it should also avoid depending on $_SERVER['xyz'] in its core like Negotiation or URL classes.
Instead, there should be transformer classes each one for Apache, ReactPHP, Swoole, RoadRunner etc. which can transform the server request/response to/from that CI-specific object.
In the Config\App it could be asked which server is being used and server-specific configuration files for CI could also be added.
Even others are trying to make compatibility but the overall experience isn't enjoyable. Like rather than improving, most of fellow developers are consuming time in debugging.
Best practices aren't standalone terms nor they attract developers itself alone. Best availability is also a major factor.