Writes to buffers from fragment shaders is now supported, as mentioned in
What’s New in iOS 10, tvOS 10, and macOS 10.12
Function Buffer Read-Writes Available in: iOS_GPUFamily3_v2,
OSX_GPUFamily1_v2Fragment functions can now write to buffers. Writable buffers must be
declared in the device address space and must not be const. Use
dynamic indexing to write to a buffer.
More over, line specifying the restriction (from the original question) is not there in Metal Shading Language Specification 2.0