@saputello hat ja schon geklärt, dass Umlaute mit `inputenc` Makros sind und dass das für `\label`s ein Problem ist. Ich möchte deshalb ein wenig Hintergrund zu `inputenc` liefern, was hoffentlich klärt, wieso `ö` ein Makro ist.
----------
Als Beispiel soll Unicode-Eingabekodierung dienen:
pdfTeX hat keine Ahnung von Unicode! Für TeX ist 1 Byte _ein_ Zeichen als Input. Unicode-Zeichen sind aber Multibyte-Zeichen aus einem bis vier Bytes. Wenn man `\usepackage[utf8]{inputenc}` lädt, scheint Unicode-Input doch aber zu funktionieren? `inputenc` ist ein cleverer Versuch, TeX dazu zu überreden, Multibyte-Zeichen als Input zu akzeptieren.
Ein ASCII-Zeichen benötigt lediglich ein Byte, bei diesen ist für TeX dann auch alles klar. Der Binärcode dieser Zeichen hat die Form `0xxxxxxx`, d.h., das erste Bit ist eine Null. Das Unicode-Zeichen `ö` ist aber beispielsweise mit zwei Bytes kodiert, `11000011` und `10110110`. Beide fangen mit einer 1 an, der Markierung, die utf8 verwendet, um anzuzeigen, dass es sich um ein Multibyte-Zeichen handelt.
Für TeX sind diese zwei Bytes jetzt aber _zwei_ Zeichen mit den Hexadezimal-Codes `"C3` und `"b6` (`"` ist der Hexadezimal-Präfix für TeX). `inputenc` macht jetzt mehr oder weniger folgendes: es macht das Zeichen mit Code `"C3` aktiv und definiert den Befehl, der damit assoziert ist, dergestalt, dass wenn das Zeichen `"b6` folgt, der TeX-Befehl `\"{o}` verwendet wird. Für `ö` passsiert das in `utf8enc.dfu` mit der Zeile (`ö` hat den _Unicode Code Point_ `U+00F6`):
\DeclareUnicodeCharacter{00F6}{\"o}
----------
XeTeX und LuaTeX lesen Zeichen bis 32 Bit und übersetzen sie zum entprechenden _Unicode Code Point_, was effektiv bedeutet, dass sie hier tatsächlich als _ein_ Zeichen von TeX wahrgenommen werden.
----------
<sub>Diese Antwort ist von [JLDiaz' Post][1] stark inspiriert.</sub>
[1]: http://tex.stackexchange.com/a/86300/5049