I would argue that financial incentives explain the Web's walling-off, and the inverse for email. There's just not that much money to be made, comparatively, from email.

But after some thought I'm coming around to your suggestion that the protocols were compatible with this outcome from the beginning. With email protocols, the messages themselves are sent from one system to another. With the web's protocols, the body of an HTTP request could be anything, or crucially it could be nothing. Walled gardens choose nothing. If email providers did the same, it wouldn't be email anymore.