I haven’t read the entire 2 threads, so maybe this idea has already come up.
In my opinion it makes more sense to set restrictions on the pulling side. I mean, who guarantees that the other peer is actually configured “receive-only” when I don’t want to pull changes from that device? It feels more intuitive to say on my own device that I don’t want something instead of relying on the other side not to send something.
Following this approach, a “receive-only” setup could be achieved by making the already existing “send-only” mode device specific. This would allow to “protect” from pulling changes from some peers while still being able to sync both ways with the rest.
Not sure about Syncthing’s internals, but maybe this approach would also be easier to implement? I mean, “send-only” is already implemented. Only the device specific configuration is missing.