What is more efficient or there is really no difference, or not enough to make any impact on the game.

spawn(2) src.icon_state="" //change delay to whatever


They are both almost the same as each other. Its a hard decision to decide which one to use, as I have experienced and heard of little timing bugs with flick. So it may be better to use your first example, but the first example may take up more room in your code. Though it would probably actually run faster, as the code wouldn't have to go through BYOND's library files to find the function and then replace it into the code. No, wait a second, that takes place at compile time anyway, so they will take both the same amount of time.

In response to ADT_CLONE
flick() probably wins on efficiency since you only need to send one network packet to activate it. But the difference is practically nil.
In response to Crispy
flick() doesn't work on images. You have to use the first version for them.