"Yeah, the avoidance of contractions in formal writing is more of a convention than trying to avoid being colloquial or substandard."
Indeed.
When it comes to contractions such as "can't," "aren't," "won't" and so forth, it's not that these are any less "correct" than their full forms; nor are they colloquialisms or "substandard" in any way. Poor old "ain't" remains the Rodney Dangerfield of contractions though: it "don't get no respect."
Since the written language always tends to require more deliberate thought and is less extemporaneous, words are traditionally written out in full.
However, with the advent of the Internet, I do notice that contractions are appearing far more routinely in written form than ever before. I believe this is because, for the first time, the web allows us to have true conversations in writing.*
I think that contractions will probably continue to gain increased acceptance in the written language.
* Something previously restricted to telegraphers and teletype operators.
Our good friend Rodney Dangerfield is no longer with us :(
I don't feel as comfortable writing contractions with 'there' as I do with pronouns such as 'they'. Sometimes I use them in posts, though, especially "there's" (which is much more common than "there're").
Google results:
"there're" 2,490,000
"there are" 799,000,000
"there's" 264,000,000
"there is" 709,000,000
The main thing about contractions is that they can be split into two classes of such, ones which are standardized, and ones which are not. With respect to the ones which are standardized, one can find basically all the -"n't" contractions, which are very highly standardized and which are found basically everywhere outside of the strict formal literary language, and the -"'ll", -"'ve", -"'d", -"'m", -"'s", -"'re" contractions and like, which are rather standard when used with personal pronouns, and a bit less standard in the generalized case of such. These are basically the contractions which are quite firmly agreed on to what they are at the orthographic level, and are in no fashion ad hoc or improvised, even though they still aren't used in truly strict literary writing outside of dialogue. Note though that the use of multiple contractions attached to a single word generally does not fall within this category, even if the contractions themselves are standardized in nature.
And then one has the unstandardized contractions, which are much more of an open case simply because of the fact that they are not necessarily set in stone orthographically, and are not necessarily used in contexts where the standardized contractions may be readily used. For starters, all usage of multiple contractions falls in this category, even when the individual contractions are standardized themselves, as shown by cases like "shouldn't've" and like. Another note is that how such contractions are represented is often more open-ended and less standardized, as shown by the aforementioned "shouldn't've" being also represented, more informally, as "shouldna". Examples of these sorts of contractions include the use of -"a" to mark "of" or perfectness (note that in the case of perfectness, one could actually call such an inflection), the use of -"na" to mark perfectness combined with negation, the use of "d'"- for "do" when it is attached to a *following* word, the use of -"'im", -"'is", -"'er", and -"'em" for "him", "his", "her", and "them" respectively in non-clause-initial position, forms that use -"ta" or -"a" to mark incorporation of "to" into a preceding quasi-modal verb such as "hafta" and "gonna", and so on. One thing about these is that while they aren't strictly standardized per se, their forms still are often quite fixed, even when other representations would better represent their actual pronunciations in a given dialect; for example, at least here, "dunno" is a fixed contracted form in informal writing for "don't know", even though what it represents would probably better be spelled "dono", as the spelling implies /"d@no/ -> ["dV~:.no] when it is actually pronounced as /"dono/ -> ["do~:.no] or /"ono/ -> ["o~:.no].