These services aren't directly assigned to port 135. Rather, they all run over MSRPC (a remote process communication protocol used by Windows NT), and MSRPC uses port 135 when transported over TCP.
Instead of reinventing the protocol separately for each service (data types, framing, semantics, client & server code) they all simply exchange MSRPC calls.
It's like having a dozen websites share the same port 80, because you use HTTP to reach all of them. Another example would be D-Bus from Linux.
Note that raw TCP isn't the only transport – some other programs use SMB "named pipes" for that; SMB itself can be transported over raw TCP (port 445) or over NetBIOS (TCP port 139)... I think there's also a HTTP transport as well. In other words, the same "Remote Registry" MSRPC service might be reachable over:
- IP / TCP (port 135) / MSRPC (service "WINREG")
- IP / TCP (port 139) / NetBT Session / SMB (pipe "winreg") / MSRPC (service "WINREG")
- IP / TCP (port 445) / SMB (pipe "winreg") / MSRPC _(service "WINREG")
- IPX (socket 0x0455) / NetBIOS Session / SMB (pipe "winreg") / MSRPC (service "WINREG")
- NetBEUI / NetBIOS Session / SMB (pipe "winreg") / MSRPC (service "WINREG")
- and possibly others.