Font substitution is something that happens on a per-glyph basis, and Firefox seems to look through

Font substitution is something that happens on a per-glyph basis, and Firefox seems to look through all installed fonts to find a suitable one. Try the following code on a W3schools editor page:

http://www.w3schools.com/js/tryit.asp?filename=tryjs_myfirst

<!DOCTYPE html> <html> <body> <span style="font-family:Arial !important;">I ❤ Firefox</span> </body> </html>

The Font Information add-on reveals that the heart (U+2764) is rendered using a different font than rest of the text. This makes sense, since Arial doesn't contain that glyph (the same would happen with sans-serif or serif instead, unless you have an all-encompassing font like Code 2000 as your default).

What I find puzzling is that this doesn't happen when "Allow websites to choose their own fonts" is unchecked. From the bug report you linked to, comment 34, that option makes Firefox set font-family:sans-serif (or serif, whichever is the user's default) everywhere on the page.
But as you've seen above, when this is done by a web page, Firefox will still use a different font when the one specified doesn't contain the required glyphs. Why would a user-set option be any different? It's not like any user's intention was, "Definitely use this font and no other, even if you can't render the characters in question".

Edit #2: I'm fairly sure I figured out what the issue is. In the case of font-family: sans-serif, whether specified by the site (e.g. Wikipedia), or by unchecking "Allow websites to choose their own fonts", Firefox will only look for an appropriate font in among sans-serif fonts.
In my previous tests, I had two appropriate fonts, Symbola and Code2000, neither of which is sans-serif (my font viewer identifies them as "old style serif" and "symbolic", respectively).