It took mathematicians a while to realise that infinities came in different sizes.
The problem was an inadequacy of language. All "infinities" are infinite, but some are a little more infinite than others. For instance, "infinity-squared" gives an infinite result, but it's a stronger infinity than the infinity that we started out from ... but by deciding to assign all these different infinite results the same name — "infinity" — we created an implicit assumption that this "infinity" was a thing, a single entity rather than a family. We ended up reciting things like "infinity is just infinity, by definition". Well, if so, it was a pretty bad definition, because infinity isn't so much a value as a realm, or a concept that allows multiple members, like "integer".
Our conventional language breaks down in these sorts of situations. To try to get a handle on the infinities, we can construct an "infinity-based" number system where our reference base unit [∞] is a "reference infinity" of "one divided by zero" (we can say, "1/0 =[∞]"), and we can compare other infinities to that, so that 2/0 gives 2×[∞], and 2×[∞] / [∞] = 2. It's possible to do proper math and get sane finite results by multiplying and dividing infinities together, as long as you remember to keep track of how big each individual infinity is (and/or where it originally came from).
We do similar things with complex numbers. These have two components, a conventional "real" component, and an "imaginary" component that's a multiple of the "impossible" square root of minus one, which we abbreviate as i. Even though the imaginary components don't exist in our default number system, we can still do useful math with these hybrid numbers ... that's actually how we generate exotic mathematical creatures like the the Mandelbrot Set. The approach works. We've seen the pretty pictures.
So multiple values of infinity are okay.
But there's one last thing that we have to fix. Zero. See, it turns out that if infinities come in different sizes, then zero has to come in different sizes, too.
At first sight this seems even more crazy. We can plot a simple line going through zero, and put the tip of our pencil on the crossing point, and say there it is, right there. How can that single point have different values? Well, as with the infinities, the auxiliary values exist off the page — when different graphs all hit zero at the same position, the properties associated with the coincident points on those different graphs aren't automatically completely identical even though they show up as being at the same position. Coincident points on different intersecting lines can carry different slopes and rates of change, and can have associated vectors and other associated baggage that gets lost when we try to break a line down into instantaneous isolated unconnected values.
Zero times any conventional number gives a zero, just like infinity times any conventional number gives an infinity. But not all zeroes have the same emphasis or strength, and this can become important when you have them fighting against each other. If we're only multiplying our zeroes by normal boring numbers then the auxiliary parameters don't matter, but as with the infinities, when we start multiplying or dividing different zeroes, we have to track the strengths of the zeroes, or else we tend to end up with mathematical garbage.
One of the problems that theoretical physicists currently have is they they're coming up against a range of problems — black hole event horizons, Hawking radiation, gravity-wave and warpfield propagation — where clusters of values assigned to apparent physical properties have a habit of going to zero or to infinity and beyond, even though the underlying local physical properties are non-zero and non-infinite. To deal with those problems we either have to find ways of sidestepping the pathological math, or come up with a more complete mathematical vocabulary that doesn't freak out when we occasionally need to divide a known strength of infinity by an associated known incarnation of zero.
Otherwise, we're liable to come to bad conclusions about how certain things are "provably physically impossible" because they appear to break the math, when in fact, the real problem is that the math that we're trying to apply to the problem is too naive. If we go down that route, we can end up accidentally elevating the result of human error to the status of an accepted mathematical proof.
Which is bad.