Memory leak with BigNumber and toString()

Anything that uses dynamic memory allocation, String objects included, can lead to memory leaks. Strings are especially bad because it's so easy to do things that invoke the copy constructor which means you end up making multiple intermediate strings in RAM that you weren't aware of.

On an Arduino without much RAM, Strings can quickly lead to trouble.

That said, your example results are surprising - how do you have so little free memory with such a short piece of code?