Currently as it is (as far as I know) icon_state can only be used to set a constant animation for someone. And if you want to set it to a specific frame, then you have to make a completely new animation with just that state. This is more of a nice easy perk that'd be really convenient to stop bases from piling up animations when they're really just frames from each other (Hairs, Clothes, and all that must be copied and pasted if you clone the animation, which can be a pain for anyone who wants a lot of customization and has a lot of animations).
Something like this:
src.icon_state = icon_state("Punch",3)
If something like this were added, it could serve as a temporary fix to Falacy's flick() idea, via making a custom flick().