Hi (author of foot here), I happened to see this bug, and it caught my interest. What I found is this:
SIGPIPE is Sway's doing. It configures it to be ignored (by setting its signal handler to SIG_IGN). Now, normally signal dispositions are restored to their defaults after an exec(). The exception is ignored signals, which _do_ get inherited. The combination of foot+bash is important too, because neither foot, nor bash restore signals they don't touch. In other words, SIGPIPE being ignored is inherited from Sway, through foot, through bash, and finally into dgit. Both zsh and fish appear to reset all signals, and are not affected. Now, foot _could_ also restore all signals, just like zsh and fish. For the time being I think it's better not to do so, since it would just have hidden the bug in Sway. There was also a bug in foot, where an ignored SIGHUP could "leak" into spawned processes. I'll try to put together a patch for sway.