The way we'd thought about making the command line work was along the lines of:
Rather than "being in a directory", you're in a current view of the system which has constraints (i.e. you've specified some requirements on some attributes and only files that match those attributes are available).
Then ls works as normal, and cd (or some such tool) provides a means to alter the constraints. Oh yes, the other awesome feature we had was the ability to save views. So eg, you'd have a view which would specify all media files added within the last two weeks, and then you'd save that view, and could switch very quickly to it. This meant that it was worthwhile putting a couple of minutes into setting up (we have GUI tools) a good powerful view of the system (this is why I said in an earlier comment you really want a full expression engine).
Once you'd got the command line working that well, it would be easy enough to try and do some fuse type binding, but it would be tricky. I looked into it but never wrote any code in that direction.