Sorry, I meant to refer to Figure 10, not 11. My point is that the RT-FIFO is on a per-client (and per-variable) basis so enabling an RT-FIFO on a variable configures only a single buffer, on that specific client.
I don't think it's an issue of 2 buffers being better than 1. I think it's two features being implemented and tested independently, that happen to result in two buffers when used together. It's generally considered good practice to implement features in a way that they don't interfere with other features when possible, and that's probably what happened here.
One use for network buffering without an RT-FIFO is an application running on a non-RT target that uses shared variables. There also needs to be support for reading and writing shared variables deterministically on an RT target, which requires the use of an RT-FIFO. I assume these two features were developed and tested separately. The performance impact of two buffers versus one is probably negligible,so the added complexity of a special section of code to consolidate them is probably not worthwhile.