When bit rate was really at a premium, we didn’t. https://en.wikipedia.org/wiki/Baudot_code#Character_set:

“The cells marked as reserved for extensions (which use the LS code again a second time—just after the first LS code—to shift from the figures page to the letters shift page) has been defined to shift into a new mode. In this new mode, the letters page contains only lowercase letters, but retains access to a third code page for uppercase letters, either by encoding for a single letter (by sending LS before that letter), or locking (with FS+LS) for an unlimited number of capital letters or digits before then unlocking (with a single LS) to return to lowercase mode.”

In computing, using such ‘shift’ codes complicates programming, though, as it makes it hard to compute string length or to index into a string (similar to the problem with UTF-8). Worse, if you see a given code sequence in a larger sequence, you may have to go arbitrarily far back in the input to figure out what it means.