That fact that the functions sometimes (or even usually) work when called from both interrupt and normal code doesn't mean that they will always work.
I'm 99.9% sure the Altera timers are based on 16bit IO devices (possibly because they've only been ported from the 16bit niosI), and as such require multiple bus cycles to access any of the 32bit registers.
This means that in an interrupt routine interrupts the main line code part way through one on those sequences than incorrect data is obtained.
It also makes the accesses slow! if you are trying to time short instruction sequences they are hopeless.