What is the suitability of using the MCWS file keys for a local cache?
File keys are unique, permanent, and can be used between runs.
For a given library will they remain unique over time?
Yes.
If a file is removed from the server can it's key be reused?
No. Theoretically there's a corner case where after importing over 4 billion files (even if 3.99 billion have since been removed) the keys will, by design, circle. I think this can be ignored in practical application.
A final note is that the MCWS browse IDs are _not_ permanent or immutable. They are generated at run time and only work for a single run of the program. This is because the browse hierarchy is customizable and can be built from expressions, so that assigning each value a permanent ID doesn't really make sense.