That's probably because exp(r) is irrational for every rational r except for 0.
Not quite; what I'd be looking for, of course, would be an algorithm that would *approximate* exp. Basically, any numeric representation in a computer is going to be a sort of "rational", in that it uses a finite number of bytes, bits, digits, or whatever to represent any number.
The problem isn't that approximation algorithms don't exist; it's that I haven't been able to find one that converges rapidly. I know they're out there - I just haven't had the time to dig around and find them.
There is certainly something wrong with bigrat or its friends. I'm not sure who's maintaining the modules any more - it used to be Tels.