This syntax would need a parser grammar change which is risky/would mean we would need a new syntax version. On the other hand, with the escaping the change can be implemented without changing the actual parser, it would only mean not ignoring the image label in some more cases.
The thing I don’t like about it is that this syntax looks to me like the whole figure was nested in a link which is not actually the case - only the image is nested in a link in HTML. Also, how would we parse the following:
[[An image: ~[~[Caption Content~>~>image:Sandbox.WebHome@XWikiLogo.png~]~]>>doc:Sandbox.TestPage2]]
would we ignore the caption again as soon as the link contains anything apart from the image? From my point of view something like [[Caption Content>>~[~[image:Sandbox.WebHome@XWikiLogo.png~>~>doc:Sandbox.TestPage2~]~]]]
would actually be more logical but doesn’t really fit with the current syntax specification (and also has it’s own flaws).