==== entirely new answer =====
Before we start let's consider an idea I'm going to call "10s complement"
Consider:
6 + ? =10
27 + ?? = 100
284369 + ?????? = 1000000
In other words: xyz....efgh + ???....???? = 1000.....0000
The answer's actually kind of slick.
abcd + (9-a)(9-b)(9-c)(10-d) = 10000
Here's why:
d + (10-d) = 10 of course, so we carry the 1.
c + (9-c) = 9 but we carried the one so ... 10 and we carry the 1.
b + (9-b) = 9 and .... well, you get it ....
...and it goes on till the very end.
So for every n-digit decimal number $abcdefg$ there is a distinct n-digit "complement" $hijklmn$ so that together they add up to 1 with n zeros.
[Now, if you were paying attention, it should be pretty clear that "10 complement" of $abcde$ is the same thing as $(100000 - abcde)$].
........ back to the original subject ......
So consider if we attempted to do what you son did and subtracted a large number directly for a small number.
We'd get
2941
-8472
====
1-2 is 9, borrow the 1. 3 -7 is 6, borrow the 1. 8 minus 4 is 4. 2 minus 8 is 4 borrow the 1 ... um, wait, what... where do we borrow the one from?...
2941
-8472
[-10,000] + 4469
with a final -1 borrowed from ... the universe. This means we are "in debt" of 1 in the 10,000s column. We "borrowed" 10,000 from a place we just don't have.
So we will have a negative number. It is the negative number that 4469 + ????=10,000.
It's the "10s complement" I began the post with!
So the answer is, you can subtract directly. But you'll need to borrow a power of 10 (1 with some zeros) to get the negative of the "10s complement"
So.... 2941 - 8472 = 4469 - 10000 = -(9-4)(9-4)(9-6)(10-9) = -5531 = -(8472-2941)
====old answer ====
Well, the logic that they can't be the same because:
1) small - big = -(big - small)
so if 2) subtracting directly were okay that would mean
3) subtracting (big - small) indirectly would have to also be true.
e.g. If we could subtract 4.5 - 8.2 by subtracting 5 -2 directly then we could, when facing 8.2 - 4.5, CHOOSE if we want to subtract the 5 from the 2 or the 2 from the 5, and obviously we know that those aren't the same...
but why do we know that?
Consider this alternative way of doing subtraction without borrowing along the way (instead we borrow at the very end):
816
-542
===
3(-3)4 =
300 - 30 + 4 =
(300 - 100) + (100-30) + 4 =
= 200 + 70 + 4
274.
Then if we subtracted (small - big) we'd get.
542
-816
===
(-3)3(-4)
=-300 + 30 -4
=[-1000] + (1000-300) + (30 - 10) + (10-4)
= [-1000] + 700 + 20 + 6 = [-1000] + 726
And we have big honking 1000 borrowed from ... the universe. This will never resolve.
....
Now lets step back from this and consider all sorts of problems like:
6 + ? = 10
26 + ?? = 100
2346839684561 + ????????????? = 10000000000000
All these types of problems have a sort of "taking the opposite" approach.
You figure what added to the first makes 10. Then with carrying you from what added to the rest make 10
3236 + ???? = 10000
???? = (9-3)(9-2)(9-3)(10 - 6) = 6764. 6764 and 3236 are "opposites" in that pairwise the add so 10000 or some power of 10.
So back subtraction.
The "opposite" of 726 is 274 . So the answer is -274.
So you can subtract directly. But in the end you'll have to take the "opposite"