Исчерпывающее видео по PSR-7 (первое из всего цикла)
https://www.youtube.com/watch?v=w4iqxN0nfTs&list=P...
Видео ответит -- зачем вообще нужно в объекты завернуть глобальные переменные
Ответ на ваш вопрос:
Чтобы ваш код можно было передавать в другие инструменты, которые также работают с объектами Request/Response... более того с этими объектами работают другие части фреймворка/др фреймворков -- модифицируют, обогащают и прочее... Например посредники, роутеры, контроллеры и т.д... А сам стандарт нужен, чтобы создатели библиотек/адаптеров/фреймворков делали все через единый интерфейс, что помогает обмениваться решениями или делать сразу под несколько платформ
Как по мне варианты от Slim 2 проще и понятнее.
Ну значит работайте с ним, пыток нет в наше время (за такую работу с глобалками)