and I would welcome anyone who understands to post an ELI-5
It is quite simple: the main goal of Ordinals was to push data on-chain. And it was 100% delivered. You have that famous, almost 4 MB block, as one of the first inscriptions. It is like the Genesis Block, but for Ordinals: it shows you exactly, what this system is really about.
And then, on top of that, you have a fee-like ownership system, that was artificially added, just before release. Because well, if your only goal is to just push some data, then you don't need any proper ownership at all! But then, you realize that people will want some kind of ownership, if your protocol will evolve over time.
So, you have a perfect cloud-storage-like system, with no ownership enforced. How to solve that? Well, you can look at transaction fees, as your inspiration. You can easily note, that miners don't need to explicitly be listed as one of the recipients of transaction fees. Everything is counted implicitly. So, maybe you can enforce ownership, if you just count single satoshis, and assign ownership to each of them?
And that's how Ordinals ended up with the system we know today. The main idea behind ownership, was to just map each satoshi to its owner. But because an earlier version was cloud-storage-only, there was no ownership. Old signatures didn't contain any information about ownership. The creator had no idea about sighashes, and thought that the whole transaction is always signed. Also, the creator thought that all amounts will be non-zero, maybe because of the dust limit (that is a standardness rule, but not a consensus rule).
Then, the first version of the code was created. It just counted all satoshis on your inputs, and all satoshis on your outputs. And the whole idea behind tracing satoshis is very simple: if you have any transaction, you can sum all amounts in all inputs, this is your entry value. Then, you sum all amounts in all outputs, this is your exit value. If your outputs are smaller than your inputs, then you have some fee, so you place it at the end. Then, you have this picture:
+--------------------------------+
| Alice 1.23 -> Daniel 6.50 |
| Bob 4.56 Elaine 3.10 |
| Charlie 7.89 Frank 4.05 |
+--------------------------------+
| inputs 13.68 -> outputs 13.65 |
| fees 0.03 |
+--------------------------------+
And then, you can try to map the ownership. If Alice owns some satoshi with index "0", then it goes to Daniel. However, because signatures are not checked at all, then what if all inputs used SIGHASH_ANYONECANPAY? Or if some wallet will sort your inputs differently? Then, this thing can happen:
+--------------------------------+
| Bob 4.56 -> Daniel 6.50 |
| Alice 1.23 Elaine 3.10 |
| Charlie 7.89 Frank 4.05 |
+--------------------------------+
| inputs 13.68 -> outputs 13.65 |
| fees 0.03 |
+--------------------------------+
Then, guess what, your precious satoshi with index "0" is no longer owned by Alice, but by Bob instead! The situation is even worse than that: if you assume that all of those satoshis are indexed from "0" to "13,68,000,000" (exclusive, like zero-indexed arrays), then you can own satoshi number "13,67,999,999", if you index things from zero. And what happens then? Of course, this particular satoshi is then sent as fees, to some random miner, and then it can fly between a lot of different addresses, if people are unaware, that they "own" some Ordinals!
And there is more: imagine that people decided to include some message to their transaction:
+---------------------------------+
| Bob 4.56 -> OP_RETURN 0.00 |
| Alice 1.23 Daniel 6.50 |
| Charlie 7.89 Elaine 3.10 |
| Frank 4.05 |
+---------------------------------+
| inputs 13.68 -> outputs 13.65 |
| fees 0.03 |
+---------------------------------+
What happens then with the precious satoshi with index "0"? Well, the first input is OP_RETURN with zero amount. And then, if you code it in a wrong way, this transaction may mess up your global satoshi counter, when you start from "0", and you plan to end with something around 21 millions.