in reply to Abstraction of FTP as a file system
I think you'll find that most of what you suggest has already been done - see Filesys::Virtual. The framework provides a mechanism for you to create a Virtual Filesystem over nearly any provider you want.
/J\
|
|---|