1. It doesn't have anything to do with chaining. Chaining is just request methods returning the instance of request that collects data including headers. I see no pro for these headers to be objects if these object do not define any structure.
2. Type hinting doesn't make sense for an object that accepts **any** key-value pairs. It is a wrapper for the purpose of having a wrapper.