P0011R0, Additions to Filesystem supporting Relative Paths by Jamie Allsop and Nico Josuttis is what broke the "relative" logjam. Much of what follows is based directly on that proposal. The weakly_canonical function and details of the semantic specifications such as use of std::mismatch were introduced by Beman Dawes.
"Overview:" sections below are non-normative experiments attempting to make the normative reference specifications easier to grasp.
A path is in normal form if it has no redundant current directory (dot) or parent directory (dot-dot) elements. The normal form for an empty path is an empty path. The normal form for a path ending in a directory-separator that is not the root directory is the same path with a current directory (dot) element appended.
The last sentence above is not necessary for POSIX-like or Windows-like operating systems, but supports systems like OpenVMS that use different syntax for directory and regular-file names.
Returns: weakly_canonical(p).lexically_proximate(weakly_canonical(base)). The second form returns path() if an error occurs.
The authors disagree; Dawes prefers following the Filesystem convention (i.e. member functions), Allsop prefers modern practice (i.e. non-member functions). They request LWG guidance.