RFC 1738, section 2.2 ("URL Character Encoding Issues"):
In most URL schemes, the sequences of characters in different parts of a URL are used to represent sequences of octets used in Internet protocols. For example, in the ftp scheme, the host name, directory name and file names are such sequences of octets, represented by parts of the URL. Within those parts, an octet may be represented by the chararacter which has that octet as its code within the US-ASCII coded character set.
In addition, octets may be encoded by a character triplet consisting of the character "%" followed by the two hexadecimal digits (from "0123456789ABCDEF") which forming the hexadecimal value of the octet. (The characters "abcdef" may also be used in hexadecimal encodings.)
Octets must be encoded if they have no corresponding graphic character within the US-ASCII coded character set, if the use of the corresponding character is unsafe, or if the corresponding character is reserved for some other interpretation within the particular URL scheme.
All unsafe characters must always be encoded within a URL.
For example, the character "#" must be encoded within URLs even in systems that do not normally deal with fragment or anchor identifiers, so that if the URL is copied into another system that does use them, it will not be necessary to change the URL encoding.
So, although Mozilla Thunderbird handles this fine, your GMail Notifier is not incorrect to handle your URI in the manner that it does, and SO should rewrite that URI so that it is compliant:
mailto:firstname.lastname@example.org?subject=C%23 Developer (via Stack Overflow Careers)&body=%0d%0a--%0d%0aFound via Stack Overflow Careers 2.0%0d%0a
It's worth noting that the newer RFC6068 (that deals specifically with
MAILTO URIs and was published in October 2010) does not mention
# explicitly, though.
Bonus points if you can find the spelling mistake in that verbatim RFC text.