Even though they arguably shouldn't, some middleboxes assume that protocols don't change. They have made it hard for protocols such as TCP and TLS to evolve without breaking things.
Similarly, middleboxes have made it unviable to deploy protocols that aren't TCP or UDP based.