The last project I was the software designer. All development was offshore. We were successful. So this process can work.
I did produce a lot of documentation but it was by no means comprehensive and by no means step by step instructions or detailed down to class names, function names etc. For example, I produced sequence diagrams, use case, workflows, system, and integration diragrams, as well a more detailed design documentation as needed.
It really depends on how much you trust offshore development. I trust my offshore team to be competent developers. That said, I provided overall direction but gave them leeway to implement which the offshore team found pleasantly satisfying. In the past they were more micro-managed. In certain situations I would guide them using the design patterns as needed. I also regularly performed code reviews and analysis on the code they wrote and would advise refactoring or clean up efforts. Also, since some of the team had accidents with recreational vehicles I ended up coding some of the stories during implementation since we ended up being short on some resources.
Additionally, I think this process really only succeeds on the strength of your technical lead(s) on the project and the communication between business, designer, leads, and developers. We did spend a lot of time going over each feature and story and made sure that the offshore leads/resources were well versed on to what the requirements were. If they are not asking questions during the review of the feature/story then expect some issues. Also work wasn't considered complete until there was business signoff. So that made everyone accountable since everything was tracked in a tool that managed agile development.
As one of the other answers has alluded to already, the development process included naming standards (resharper rules built in), test case coverage (it used TDD, Mocking, etc) so if there is good coding process and procedure in place it will increase your chances for a successful project.