Unity uses those exact same geometric structures under the hood. You just don't see the native code (written in C++) that does those operations. That doesn't mean they aren't there. Unity purposely obscures these from you so you don't have to think about them, and you can just use what they've provided "under the hood". Like a driving a car - you need not know how the engine works - you just use the pedals, gears, brakes and steering wheel.
How are complex collisions with no formal and geometrical structures calculated?
If you're asking about the real world: every atomic nucleus repels other atomic nuclei (except in special cases). Atoms form bonds, thereby creating molecules and ultimately, macro-scale physical objects. As you try to push atoms closer together, they repel each other. This (at least in current physics) is described in the Pauli exclusion principle.
If you coded to replicate that effect, you could create objects without need for a large-scale geometric description, since they would likewise just be described as a point in space and a given influence / force around that point. The combination of those point fields would create the greater field which could handle close range repulsion (impenetrability) for you. The problem then becomes simulating enough of these particles to make a working world without very coarse collision fields. That limitation is why we do not do physics that way, at least in games. Collision geometries are typically cheaper.
P.S. You should know that collision systems consist of two sets of actions: detection & resolution.
Let's look at a simple example describing 1D collisions.
First, detection in 1D. Imagine 2 carriages, A & B, on a train-track. If the front of the first carriage is at the same position, or further along than the back of the second trailer, then there is a collision. Here is your track and two carriages overlapping:
---[A [AB] B]--->
If we found they are overlapping, we need resolution. This can occur in many different ways. One of the simplest is to say, "In real life two carriages cannot be overlapping on a train track. So we must move one or both carriages so that they are no longer overlapping." So we go from the above, to this:
---[A ][ B]--->
Now there is potentially a lot more to that, than meets the eye. If you are writing a very simple game, this resolution may suffice. But if you need more accurate physics, then you may need to calculate bounce force using the force formula
f=mv with restitution co-efficient, and then reverse or reduce the velocity of A, increase that of B, or whatever. Realistic computation of physics is a field all on its own.
You can see that it's simple enough to extend this to 2D or 3D. Exactly the same principles apply. First, geometrically describe the object (in the case of carriages using a min and max extent), then check for overlap (detection), then resolve the collision in whatever way is accurate enough for you.