Receiving segments and sending out ACKnowledgments is an ongoing process. The sender can summarily ACK segments, but it must not delay the ACKs too much to keep data flowing - only when data has been ACKed can the sender advance the sliding window and send more data.
Lone ACKs are often preferred (=advanced in the egress queue) by WAN routers (traffic shaping), so it might make sense to use them to maximize throughput. How exactly a host stack uses the TCP mechanism is up to its implementation.