The binding of the called subprocess definition happens at deployment time of the calling process definition. So it is at that point that the subprocess and its version (if specified) are chosen. If there is no subprocess with that name deployed in the repository, the binding does not happen.
The idea is that you can do this binding afterwards manually through a management feature in the console, which at this point does not exist AFAIK. But it should not be too difficult to write such a piece of code yourself.
thanks for that hint, I will enhance our deployment function to do this.