Another question, why was this method of "pruning" chosen? Why does it just keep track of the last X amount of blocks?
This seems like an awkward implementation because it doesn't actually help anything directly, and just leaves a huge gap in the blockchain.
It would work without keeping any of the blockchain. After it verifies the blocks there really is no need for the blockchain. It keeps those blocks in case of blockchain reorgs.
Wouldn't it be more effective to prune by following the coins from the blocks they were mined from?
I.E. Keeping a record of where the coin was mined and where it is currently.
This is pruning at the node level, not shrinking the blockchain which is what you are suggesting. And at the protocol level, there is no such thing as a "coin", it is all inputs and outputs so such an idea does not work.