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?