mmm... in realtà penso di sapere il perché del limite, ci avevo pensato troppo poco, dovrebbe essere il valore massimo esprimibile con 32 bit.
A questo punto è anche chiara la difficoltà del'estensione, è questione di compatibilità finché non saranno abbandonati i sistemi a 32 bit a favore di quelli a 64, o quantomeno dovrebbero modificare la funzione in modo che abbia un comportamento diverso se si usa su sistemi a 32 o 64 bit, magari lasciando specificare un parametro quando la funzione viene invocata.