`getHeaders()` always returns an array of `HeaderValuesInterface` objects.

> This is also fuzzy in the HeaderValuesInterface that acts as if there could be multiple field-values for the same field-name which is not correct. This is only the case in the message-header-fields, not for concrete field-values.

There can be multiple header values for any given header. Whether or not the are represented on multiple lines in the HTTP message headers or concatenated using a comma is not addressed in this PSR and I don't think it should be. Anyone can add any header, and this PSR making decisions about which headers go on multiple lines vs concatenated with a comma is untenable.

Also, what are "concrete field values"?