Eine Library oder Klasse, die (beliebig) große Zahlen auf Basis von Strings implementiert, macht sicher irgendwas falsch. Mit Sicherheit noch falscher wird's nur, wenn auch noch das dezimale Zahlensystem für den String benutzt wird

Wie auch immer. Wenn die Zahl als bereits als dezimaler String vorliegt, kannste da einfach den letzten Character rausnehmen und hast das, was du brauchst (um den Ascii Char wieder in die entsprechende Zahl zu konvertieren, einfach das Zeichen '0' abziehen). Da würde die Modulo-Rechnung keinen Sinn machen.
Liegt die Zahl, wie in vielen Implementationen von großen Zahlen, binär vor, ist vermutlich immer die Modulo-Operation der Konvertierung in einen Dezimalstring (mit anschließender Extraktion des letzten Characters) vorzuziehen, da letztere intern vermutlich mehr als nur eine Modulo-Operation ausführt und daher aufwendiger ist.
Hoffe, dass das hilft

Mit freundlichen Grüßen
Jeoni