I don't think I really understand the question, but please bear with me.
Indeed both code snippets are the same computation.
The first snippet is SSA, the second is not. Notice that doing, for instance, constant propagation on the first snippet is straightforward:
int a = 5
int b = 2 * 5
You can do this because SSA form guarantees that the value of a is 5.
In non-SSA code, there is no such guarantee: you need to check the "history" of each variable before replacing it with a value.
I'm not totally convinced that SSA "increases the optimizations that compilers can do". However, it definitely makes optimization algorithms easier.
I guess my point was that the optimizations available are the same (between those two snippets of code) if you end up in SSA form. Thinking about it now, I don't know what optimizations would be done before going to SSA and how they would be affected.
I'm not totally convinced that SSA "increases the optimizations that compilers can do". However, it definitely makes optimization algorithms easier.