Thanks for your comments @martin-g! I just wanted to point out that all the `withXXX` end up calling `copy(..)` which calls a version of `Uri.apply(..)` that normalizes the scheme, thus making the tests pass. I included one more assertion with a non default port that illustrates the behavior described by Mathias bellow.