It certainly is more painful, but it is more beneficial. It is also harder to teach, but I stand by my claim.
I'll quote Poincare:
Math is not about the study of numbers, but the relationships between them.
The difficulty and benefit of the rigor is the abstraction. Math is all about abstraction.
The abstraction makes it harder to understand how to apply these rules, but if one breaks through this barrier one is able to apply the rules far more broadly.
----
Let's take the Fundamental Theorem of Calculus as an example[0]:
f'(x) = lim_{h->0} {f(x + h) - f(x)} / {h}
Take a moment here and think about it's form. Are there equivalent ones? What do each of these symbols mean?
If you actually study this, you may realize that there are an infinite number of equations that allow us to describe a secant line. So why this one? Is there something special? (hint: yes)
Let's call that the "forward derivative". Do you notice that through the secant line explanation that the "backward derivative" also works? That is
f'(x) = lim_{h->0} {f(x) - f(x - h)} / {h}
You may also find the symmetric derivative too!
f'(x) = lim_{h->0} {f(x + h) - f(x - h)} / {2h}
In fact, you see these in computational programs all the time! The symmetric derivative even has the added advantage of error converging at an O(n^2) rate instead of O(n)! Yet, are these the same? (hint: no)
Or tell me about the general case of
f'(x) = lim_{h->0} {f(x + ah) - f(x + bh)}/{(a-b)h}
I'm betting that most classes that went through deriving the derivative did not answer these questions for you (or you don't remember). Yet, had you, you would have
instantly known how to do numerical differentiation and understand the limits, pitfalls, and other subjects like FEM (Finite-Element Methods) or Computational Methods would be much easier for those who take them.
----
Yet, I still will say that this is much harder to teach. Math is about abstraction, and abstraction is simply not that easy. But abstraction is incredibly powerful, as I hope every programmer can intuitively understand. After all, all we do is deal with abstractions. One can definitely be overly abstract and it will make a program uninterpretable for most, but one also can make a program have too little abstraction, which in that case we end up writing a million variations of the same thing, taking far more lines to write/read, and making the program too complex. There is a balance, but I'd argue that if one is able to understand abstraction that it is far easier to reduce abstraction than it is to abstract.
This is just a tiny taste of what rigor holds. You are absolutely right to be frustrated and annoyed, but I hope you understand your conclusion is wrong. Unless you're Ramanujan, every mathematician has spent hours banging their head against a literal or metaphorical wall (or both!). The frustration and pain is quite real! But it is absolutely worth it.
[0] Linking an EpsilonDelta video that covers this exact example in more detail https://www.youtube.com/watch?v=oIhdrMh3UJw