The specification also says:
[…] The transmitter, however, must send a corresponding Note Off message for every Note On sent. If the transmitter were to send only one Note Off message, and if the receiver in fact assigned the two Note On messages to different voices, then one note would linger.
This implies that there must be a 1:1 relationship between Note-Off messages and voices. It says nothing about FIFO or LIFO, but for practical purposes, only FIFO appears to make sense.
There is a case where two Note-On messages might accidentally happen: two notes are played not at the same time, but directly after the other, i.e., the second Note-On is sent directly after the first Note-Off. Now these two messages can have the same timestamp, so some stupid playback program gets their order wrong and sends the second Note-On directly before the first Note-Off. In this case, FIFO would be the only correct choice.
GS devices have a parameter that affects Note-On messages:
Address: 40 1x 14
Parameter: ASSIGN MODE
0 = SINGLE, 1 = LIMITED-MULTI, 2 = FULL-MULTI
Single : If the same note is played multiple times in succession, the previously-sounding note will be completely silenced, and then the new note will be sounded.
LimitedMulti : If the same note is played multiple times in succession, the previously-sounding note will be continued to a certain extent even after the new note is sounded. (Default setting)
FullMulti : If the same note is played multiple times in succession, the previously-sounding note(s) will continue sounding for their natural length even after the new note is sounded.
ASSIGN MODE is the parameter that determines how voice assignment will be handled when sounds overlap on identical note numbers in the same channel (i.e., repeatedly struck notes). This is initialized to a mode suitable for each Part, so for general purposes there is no need to change this.
But it says nothing about Note Off either.