I guess that what Prissi intends to say is that you can have an intermediate solution. FIFO schedule is a priority based algorithm, being priority the waiting time in this case. So, if we have six passengers waiting:
Passenger (1) wants to go to A and have waited 12 minutes
Passenger (2) wants to go to B and have waited 10 minutes
Passenger (3) wants to go to B and have waited 8 minutes
Passenger (4) wants to go to A and have waited 7 minutes
Passenger (5) wants to go to A and have waited 5 minutes
Passenger (6) wants to go to C and have waited 2 minutes
Passengers are loaded based on waiting time: (1), (2), (3), (4), (5), and (6), stopping when the vehicle is full.
If we merge packets, we have three of them:
First packet: (1),(4),(5) want to go to A and have waited 8 minutes each in average
Second packet: (2),(3) want to go to B and have waited 9 minutes each in average
Third packet: (6) want to go to C and have waited 2 minutes each in average
The load order is, therefore, second packet, first packet and third packet.
It is evident that if you merge packets you save a lot of resources (memory, for instance). And, besides, Simucitizens aren't individuals with name. So, it doesn't matter if we load (1), (4) or (5). It only matters the number of them and the destination...
It is not FIFO, but maybe it is better that always loading in the same order, isn't it?