I stumbled upon some problem in my understanding of the complexity classes FPT and XP. According to Wikipedia (and the Book "Parameterized Algorithms") we know the following about the Vertex Cover and Vertex Coloring problem:
A vertex cover of size $k$ in a graph of order $n$ can be found in time $O(2^{k}n)$, so this problem is in FPT.
An example of a problem that is thought not to be in FPT is graph coloring parameterized by the number of colors. It is known that 3-coloring is NP-hard, and an algorithm for graph $k$-coloring in time $O(f(k)n^{O(1)})$ for $k=3$ would run in polynomial time in the size of the input. Thus, if graph coloring parameterized by the number of colors were in FPT, then $P = NP$.
According to this answer from a different question it is also true that Vertex coloring isn't even contained in $XP$ (unless $P = NP$).
since $3$-coloring (which is NP-complete) would be solvable in $O(n^{f(3)})=O(n^c)$ time, thus rendering it polynomially solvable.
While each statement above makes perfect sense on its own the combination of all three seems odd to me, as we know that Vertex Cover is considered NP-complete just like Vertex Coloring is.
What I don't get is: As far as my understanding goes I could argue as above that for a fixed $k$ (say $k=3$) in a vertex cover instance we could achieve a linear runtime, namely $O(2^3n)=O(n)$. Which would show $P=NP$, just as it is argued in Vertex Coloring.
And again since $O(n^{f(3)})=O(n^c)$ it wouldn't even be in $XP$. Thus Vertex Cover should not be contained in $FPT$ or $XP$.
Since Vertex Cover clearly is in FPT: What am I getting wrong here?