I have exactly the same problem: my continuous delivery build pushes to the git branch that is being built from.
The problem with the current protected branch implementation is that it overloads the ‘admin’ permission. In my case, I want people to be able to do things an admin would do EXCEPT override branch protections.
One idea to solve this is to allow a list of users which can bypass the branch protection. This way, i can allow my build automation to bypass branch protection (which is fine since this is tested automation – not subject to human error) while still ensuring that human users can not get around the protections (accidentially or otherwise).