Na página man do submodule git :
A non-zero return from the command in any submodule causes the processing to terminate. This can be overridden by adding || : to the end of the command.
Isso significa que o seguinte deve fazer o trabalho:
git submodule foreach 'git push origin :foo || :'
O ||
é um OR e executa o próximo comando se o primeiro retornar diferente de zero, o :
retornará verdadeiro.