You can certainly read from a RWStructuredBuffer if you want to. In some cases it might make sense to read from one buffer and then write to the same buffer, but in many cases you want to read from one buffer and then write to a different one. This might be because the output structure is different from the input format, or the shader needs to write to a different location than it's reading from. In the latter case you don't want to have one thread writing to an element that a different thread is reading from, since this will lead to race conditions. So the simplest way to handle it is to read from one buffer as a StructuredBuffer, and then write to another as a RWStructuredBuffer.
It's a bad name from DirectX, RWStructuredBuffer output and you set a StructuredBuffer to read.
Pixel shader can't bind a UAV, it has not a PSSetUnorderedAccessViews, pixel shader output to a texture.
It's important to notice that a SRV and a UAV must not be binded same time.
I'm not sure if you're implying that a RWStructuredBuffer can't be read from, since that's not the case as I explained above. Also you certainly can bind a UAV to a pixel shader, however it's done through ID3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews.