Yes, you're right as usual.
I had not thought about playing with ORDER BY on a field which has only
one value in the result set.
> If you write it as
> SELECT WHERE topic_id=2 ORDER BY topic_id DESC,id DESC.
> then an index on (topic_id, id) will work fine. The mixed ASC/DESC
> ordering is not compatible with the index.