Actually… why not making the transclusion sign !
valid both outside and inside the link? i.e., 
would be equivalent to [alt](!target-image.jpg)
. (By following this logic, we could even turn alt text into a visible caption in a simple and consistent manner, i.e. [!caption](!target-image.jpg)
.)
This would retain compatibility with current markup, and would allow a simplified image link markup that is both simple and unambiguous: [alt](!cats-big.jpg)(cats-small.jpg)
.