Self-ref labels aren't a huge problem - the key reason why we flag them as errors as it is all too easy to grab waypoints for that route from other .wpts and then not rename them. We usually label signed* branches with a settlement name. Recently I've been adding some sort of note in the city field of the .csvs to say that it's a loop/spur off the mainline, rather than disjointed route segments.
The B44/B47 junction is a mess. I suggest naming B47's 'B44' point for the cross street, and adding a new point where the B roads actually cross (because there's a ramp, making it a junction). The B44 has no business having a point where 'B47' currently is. If there's similar junctions where movements are via a linking road, then points at the link road and no shared point. See France and their many trumpet interchanges for examples elsewhere.
*Unsigned ones don't get added, with few exceptions.