I never used the function and I am not sure about its role/where is useful.
However, the current behaviour is correct if the received is added as header parameter -- enclosing it in quotes is ok there. Without enclosing it, there can be `received=uri;transport=xyz`, so transport becomes another parameter of the header, no longer part of received value.
Then: adding `received="uri;transport=xyz"` to URI in Contact is indeed invalid, but also removing the quotes is not ok. The transport becomes parameter to URI, not part of received parameter. In this case, the `=` has to be escaped.
But again, wonder when this is useful and if escaping is fixing it overall or breaks it even more so other parts need also patches.