Si selecciona atributos que no se utilizan en la cláusula de grupo y que no son agregados, el resultado no se especifica. Es decir no sabe de qué filas se seleccionan los otros atributos. (El estándar sql no permite este tipo de consultas, pero MySQL es más relajado).
La consulta debe escribirse, p. como
SELECT post_id, forum_id, topic_id
FROM posts p
WHERE post_time =
(SELECT max(post_time) FROM posts p2
WHERE p2.topic_id = p.topic_id
AND p2.forum_id = p.forum_id)
GROUP BY forum_id, topic_id, post_id
ORDER BY post_time DESC
LIMIT 5;
o
SELECT post_id, forum_id, topic_id FROM posts
NATURAL JOIN
(SELECT forum_id, topic_id, max(post_time) AS post_time
FROM posts
GROUP BY forum_id, topic_id) p
ORDER BY post_time
LIMIT 5;