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)
//Where 3 = the 3rd Frame and it would stay at that frame.
//Pretty much the same as the icon() proc but for icon_states
If something like this were added, it could serve as a temporary fix to Falacy's flick() idea, via making a custom flick().
I recommend dantom or whatever other BYOND admins add this in the next update