Oui, vous pouvez.
La fonction est par session, mais elle n'est également valable que pour la toute dernière requête.
Autrement dit, vous n'aurez jamais un utilisateur "polluant" le last_insert_id d'un autre, mais vous ne pouvez pas récupérer un insert_id à partir de deux insertions précédentes. Lorsque vous devez effectuer plusieurs insertions à la suite et que vous n'avez besoin des identifiants que plus tard, définissez-les comme variables :
INSERT INTO ...
SET @foo_id = LAST_INSERT_ID();
INSERT INTO ...
SET @bar_id = LAST_INSERT_ID();
INSERT INTO some_join_table VALUES (@foo_id, @bar_id);