HTTP does not use filesystem abstraction. The path in HTTP requests is completely unrelated to files and just looks like a file path.
FTP has actual stateful filesystem traversal commands. PWD / CWD / CDUP / ... . Of course it can be faked, but why bother?
I understood devices in the comment as personal devices for end users rather than servers. In that case discovery is really not external. Same with NAT - it's a difference between "kind of works sometimes" and "is designed to work with it". See Skype's initial success. Or how SIP documents NAT behaviour extensively https://tools.ietf.org/html/rfc6314
FTP has actual stateful filesystem traversal commands. PWD / CWD / CDUP / ... . Of course it can be faked, but why bother?
I understood devices in the comment as personal devices for end users rather than servers. In that case discovery is really not external. Same with NAT - it's a difference between "kind of works sometimes" and "is designed to work with it". See Skype's initial success. Or how SIP documents NAT behaviour extensively https://tools.ietf.org/html/rfc6314