+1 to all.
I'm not clear if you want to change just the external default for text files, or if you are considering changing the internal representation of strings as well. UTF-8-based storage comes with extra costs for random string access, so you might want to implement SRFI 130, which allows fast sequential cursor-based as well as index-based operations. (There is no standard string library for R7RS-large yet.) The sample implementation does cursors on top of indexes and so provides no speed advantage, but a tuned-up variety of the Chibi implementation would be much better for Gambit. In a UTF-8 internal representation, you of course make string mutation costly, but it's a rare thing to do, at least when strings are not being (mis)used as bytevectors.
SRFI 135, immutable texts, is part of R7RS-large. It provides disjoint O(1) read-only string-like objects called texts. Its operations always return texts, but most of them work on either texts or strings. There are a variety of available implementations: one based on UTF-8 stored in bytevectors, one based on UTF-16 stored in bytevectors, and one based on strings (for use when built-in string operations are much more efficient than operations written in Scheme). All permit a bounded amount of storage-sharing. So when writing programs that manipulate a lot of textual data, the idea is to use strings only at the edges of the program (literals and I/O) and to do all textual manipulation using texts. It's flawed, but that's all we can do.