Tables have no order
A table is a set of rows, not a list. Nothing in a database promises that rows come back in insertion order, and as soon as you filter or join, the order can shuffle. If the order matters to you, ORDER BY is where you state it. If you skip it, you are accepting whatever order the database happens to produce.
ORDER BY then LIMIT
The clauses run in a fixed order, and that order is what makes LIMIT mean what you think. The rows are sorted by ORDER BY first, and only then does LIMIT cut the list. So ORDER BY id DESC LIMIT 2 is the two biggest, not the first two added. Write them in that order and the meaning follows.