SMS is limited to 140 character messages.
Actually, it's 140 bytes, not 140 characters. The GSM 3.38 alphabet is 7-bit, thus allowing one to squeeze 160 characters into this 140 bytes. The exception is a few punctuation characters, which take up 2 bytes each.
In order to transport characters not covered by the GSM 3.38 alphabet, one must use the 16-bit UCS-2 encoding which thus limits one to 70 characters.
There's no technical reason restricting Twitter from allowing 140 rather than 160 characters, unless there's an issue I am not aware of (perhaps one or more major mobile networks are broken and only allow 140 characters rather than 140 bytes?).