It could be as simple as a flag on the API: Do you want shortened links and a guarantee that the message is less than 140 characters, or full link, with a risk that it will "spill over". As most (all?) clients expand links anyway, they'd be choosing the latter.