I would guess
that most of the time, people use the WiFi on a smartphone in bursts. What I think you could do is to have a delayed power down, so that all the time there is a stream of packets, the radio would remain on, but as soon as there is a gap in the flow of inbound packets destined for that device for more than the delay, it would power down the radio. Generally speaking, people will not be running server-type services on a smartphone (OK, I know that there are exceptions, like uPNP and DLNA), but most things will be initiated from the smartphone.
I suspect that for TCP type services, you could deliberately ignore or even NAK the first packet to force a re-transmit while the radio powers up. Would not work for UDP, icmp or lower level protocols, but UDP services normally have some mechanism for handling lost packets, and I would doubt that many people use layer 1 services on a smartphone.