Gmp has a pretty huge amount of fancy stuff in it that, I would guess, would be quite hard to do efficiently in SML. Just the transition from school-boy multiplication to Karatsuba to FFT is very tricky. Also there are some assembler routines that speed things up. Although the interface is certainly not optimal (GCD being particularly bad), I would say sticking with GMP is still way worth it.