First, I apologize for such a long response. I'll try to summarize at the end. But as you can see, Twitter wasn't going to cut it.
Second, X-Callback doesn't initiate a subscription. It simply specifies a callback. A callback can be used in different ways as you can see in just about any library or framework using callbacks. This is a primitive that can be used for protocols that address more specific use cases such as subscriptions, forwarded responses, or other variations.
All X-Callback is supposed to do is describe a callback.
Okay, now, why header space? Let me explain what I've observed since I started pushing/popularizing the webhook pattern almost 6 years ago. A protocol or conventional format was never necessary for people to implement the pattern. And if one were to emerge, it would be based on cowpaths since I don't believe in pre-conceiving every possible implication of different use cases. And I knew there were a LOT of use cases and possibilities, as that was mostly what I showcased in my talks.
So people started implementing webhooks in their APIs. In all sort of different ways. Some let you specify a callback via dashboard UI (like PayPal, the classic example), some built out an API. Some built very elaborate APIs modeling their callbacks and enabling and disabling them. Some were simpler. And you can bet all those APIs conformed to the conventions of the *rest of their APIs*. Some were XML. Some were JSON. Some were about massive event streams. Some were about private events. Different security models. Etc. Sort of chaos, but it worked. It worked maybe more so because providers could do what worked for them and made sense for their API.
I never wanted to propose anything that would mean everybody had to drop the APIs they might already have. Or something that would stray from their existing API if they were thinking about adding webhooks -- making this webhooks business something different and special. Imagine a provider's REST API and then because they wanted to augment their API with an evented model, and they don't want to invent anything, they find and implement PubSubHubbub. Never mind that PubSubHubbub isn't exactly made for the use case they want, but it's also nothing like the rest of their API, making this events/callback business something completely different.
Evented APIs should just be web APIs with callbacks, not an API and some completely separate mechanism that looks nothing like the rest of the API. As somebody that designs APIs I would imagine you could appreciate that.
Working in the header space means you stay out of the way. You can include callbacks in requests for existing resources people are already modeling. If they're modeling callbacks, they can do it however they like and still have a standard way to talk about them. This is important when it comes to the protocols we *build on top of this*.
If we were to specify a protocol for response redirection, that's not something you model as a resource. That's changing how HTTP works. Any request with any response could be redirected. So now these protocols can change how HTTP works on existing resources. That's just not possible in the content layer.
Any other protocol, such as HTTP Subscriptions, can be layered on top of this and retain these properties. Stay out of the way of how things are modeled. Allow it to change the behavior of HTTP. Etc. Because that's what we're talking about really, we're expanding on the synchronous request/response model and allowing a callback model. Which again, I'll reiterate, can mean a lot of things. Not just subscriptions.
So I guess to summarize:
1) It lets us agree on a way to talk HTTP callbacks without getting in the way of how people want to design their APIs
2) It lets us talk about callbacks in a way that works with existing APIs, existing resources
3) This lets us build protocols on top of callbacks that change how any HTTP request works
4) It lets us build (and layer!) these protocols using primitives like X-Callback while retaining these properties
I know it might seem silly given the simple problem people think this solves. But that problem is often different from person to person, and that's why I'm approaching it in a very layered, flexible way based on both my observations and aspirations. I guess you could say I'm taking the "long view". After all, I've had 6 years to think about it and watch what people are doing. :)