Why is operator overloading in Swift not declared inside the type it belongs to (like in C++) but in the global scope instead?
Side note: Does it really matter? That's how it is.
The operators are not declared inside types because they are more akin or inline with global functions. Class methods and Structure functions typically modify or query the called entity.
In that sense let x = a + b
is more akin to writing let x = add(a, b)
than it is let x = a.add(b)
as the latter leads you to believe you're modifying the receiver (which is not true).
One could argue that you're querying it, in effect asking: "A, if you were to be added to B, what would the result be" but that's not a natural way to think of object/type interraction.
At the end of the day, it was a design decision.