`Integral(exp(x), (x, x))` does make sense. When the tuple has two elements, this means that the second element is to be substituted after integration. So `Integral(f(x), (x, y))` is more or less equivalent to `Integral(f(x), x).subs(x, y)` or `Subs(Integral(f(x), x), x, y)` (this syntax was invented before `Subs` existed).