LDR Rd,[Rd],#0 is not undefined, but it is unpredictable. The post index implies base register write back, and so you are trying to do base register writeback to the same register as the load destination. Which of the two takes precedence will depend on the implementation.
LDR Rd,[Rd] is implicitly preindexed, and so won't write back the base register, therefore there is no ambiguity as to which value should end up in the destination register.
OK, it might be possible to avoid the cache consistency issues, but that's not going to be the most efficient way of doing it (OS_File 5 may not be that quick - it can require several network round trips in some cases). Some protocols such as NFS have support for caching, which is going to result in a much better system if they can integrate with the caching system in use.
I wouldn't want network filing systems cached without the knowledge of the FS, as that would cause cache consistency problems. It would be really nice to see the whole filing system structure get an overhaul so things like this could be implemented in a sensible manner.