Kind of. Sometimes it just chops, sometimes it chops and replaces (see below). The drawbacks of the algorithm are well-known, but for most quick and dirty applications it's considered good enough.
Haha, is Icelandic just so irregular that you can't write a sensible pretty-good heuristic? Is it a smaller language than English? (My hunch is that English is one of the larger languages because of how much it cribs off others, but I really don't know, especially relatively speaking--like, same order of magnitude?) My understanding is that a lookup table for English would be so huge and onerus (and in particular difficult to maintain; "welp guess we've got to add that rule for iPads -> iPad now") that an algorithmic approach is greatly preferred.
A very cursory look suggests that contractions are actually handled at a different point in the preprocessing step, but none of the pipelines I've looked at so far do anything special for them. The assumption is that you've already done some transformation on the contractions, I think. I cribbed the basis of my code off a demo used to analyze Reddit posts, so formality definitely isn't an expected prerequisite.
It's not! That's "body," actually, although "bodily" would also be lumped into that same bin. You can look back at the non-stemmed word clouds to see it in all its correct glory. You recall that I said "tri" in one of the Salvage clouds is actually "try/tries?" Words ending in "y" generally have it replaced with an "i," which handles things like the aforementioned "try/tries," "fly/flies," "cry/cries," etc. This also causes a lot of hilarity on words that end in "y" but aren't verbs; you end up with a lot of creative spellings of character names, like "Luci" and "Sparki."
For this reason, after you've stemmed the text, you then have to go back and try to repair the stems. This is done by taking the stem and looking for words in the original corpus that are just the stem + some suffix, then assigning the stem to one of them (in this case the shortest possible suffix). Some examples of stems that were correctly repaired were "suicun" to "suicune" and "gyarado" to "gyarados." However, because letters got replaced in the conversion from "body" to "bodi," there's no way to get back the actual, original word. "Bodily" was apparently the shortest valid extension of "bodi" in the corpus, so that's what "body" became. "Sparky" comes out as "sparking" for the same reason.