Now that I'm tearing into perms a bit I'm starting to form the opinion that some sleepy coding got into the core way back in the days of old. The meanings of each option are NOT clear - that is simply true and probably not too hard to deal with. But the basics of what one can do actually can work rather nicely.
View (which allows one to also use), Upload (which allows one to view and use), Modify (which allows editing details): all there

DISCLAIMER: I'm looking at other details and observing these - not trying to fix them. One thing that sort of stands out as a need in media is that 'all' and 'edit' for groups->grp_perm_files are effectively the same. To my mind 'edit' should allow renaming and tweaking the extra bits like long description or whatever. 'all' is where one would gain move and copy and delete. Deleting is an aggressive edit! If that is split, which is nothing more than logic, then we probably would want to modify blogusers by adding a bloguser_perm_media_movecopydelete field. Bad name but if we have it in groups then we probably want to modify it in users. Seems to be 'the way' is what I mean.
Anyway I'm close to another push on new_navbar that handles files permissions much better. I did not try to fix the "you get an upload link when you do not have upload permission" because the branch is about the navbar and the bug isn't in the navbar. Can't be hard though. Just check before adding the link.