п.1 На защиту выносился код до специальной пометки:
https://github.com/rusdevops/request-handler/blob/master/include/request.hpp#L57
поэтому п.1, п.4 можно не рассматривать, но стоит сказать, что для согласованного вывода, поскольку используется несколько операторов вывода в одном потоке, то необходимо синхронизация. (к примеру https://github.com/rusdevops/request-handler/blob/master/include/request.hpp#L82)
п.2 Что касается trailing return type, большенство программистов используют