The fact that Beast allows you to go low level if required, is one if its strengths. And moreover, C++ is generally used in projects where such control is required.
> The fact that Beast allows you to go low level if required, is one if its strengths.
Yes. But the key moment is "if required". With Beast you always have to initiate read and write operations. Just look at Vinnie Falco's code: https://github.com/vinniefalco/CppCon2018/blob/293bedbd5204d...
You perform request processing and then you write the response manually. Even if there is no need to do such low-level operations in that task.
> And moreover, C++ is generally used in projects where such control is required.
Not only. For example, Wt framework is used for Web-interface for smart devices and you don't need to have an extreme performance here.
Another case: we created HTTP API for old C++ code, but this API was used inside a big application only (application was divided into several parts, something like microservices approach). And the main problem was not a performance of HTTP-related part, but the big response times from old C++ code (it takes seconds to process a request).