The reason is essentially the same, yes, in that it has to do with character encoding - the way human-readable characters are stored as machine-readable bits.
An SMS message has a size limit of 140 bytes, and the number of characters that can fit inside that limit depends on the encoding used.
The default GSM character set that covers the English alphabet as well as common symbols and punctuation marks uses 7 bits per character, thus allowing for a total of:
140 bytes × 8 bits per byte / 7 bits per character = 160 characters
When using language shift tables, this encoding can also support a number of other alphabets, but the number of characters is reduced slightly, as some of the 140 bytes are used to store information about which shift table exactly is used.
Another option is an 8-bit encoding, which can fit up to 140 characters per message (just like Twitter). Technical details on this seem to be sparse.
For any character not covered by the above two encodings, such as "¬", UCS-2 (now incorporated into UTF-16) has to be used. This encoding uses two bytes (16 bits) for each character, thus the total number of characters is only 70, as can be seen in your screenshot.
Crucially, even a single two-byte character causes the entire message to be encoded in UCS-2. You can see this for yourself by typing in 60 regular English characters, and then entering a special character not covered by the standard 7-bit character set. The character count will pop up, informing you that you've used up 61 of 70 characters. If you were to continue typing only English letters and standard punctuation marks or symbols, the character count wouldn't appear until you've entered 130 out of 160 characters.