Ele não retorna o que você espera porque o agrupamento acontece antes da ordenação, conforme refletido pela posição das cláusulas na instrução SQL. Infelizmente, você terá que ficar mais sofisticado para obter as linhas desejadas. Tente isto:
SELECT *
FROM `table`
WHERE `id` = (
SELECT `id`
FROM `table` as `alt`
WHERE `alt`.`otheridentifier` = `table`.`otheridentifier`
ORDER BY `time` DESC
LIMIT 1
)
ORDER BY `time` DESC
LIMIT 3