Confused about the solution obtained from vector linearization

As mikado pointed out, this is a bug and the return value is complete nonsense. Don't invest any time in interpreting it. Better use the time and send a bug report to Wolfram Support. This appears to be a really old bug and they won't fix it without sufficient peer pressure.

In the meantime, you can go on with

expr = Cross[(u + ϵ*du), (v + ϵ*dv)]/Sqrt[Dot[Cross[(u + ϵ*du), (v + ϵ*dv)]]];
(expr /. ϵ -> 0) + (D[expr, ϵ] /. ϵ -> 0) ϵ

$\frac{\epsilon (\text{du}\times v+u\times \text{dv})}{2 \sqrt{u\times v}}+\sqrt{u\times v}$

With regard to the second question: A space between two vectors is still interpreted as Times, hence as a component-wise multiplication, producing again a vector of same Length (if the two vectors have same Length and an error message otherwise).


Using my answer to the linked question, you can do:

protect = Unprotect[System`Private`InternalSeries];
System`Private`InternalSeries[a_Dot | a_Cross, {x_, x0_, n_Integer?NonNegative}] := Module[
    {d = NestList[D[#, x]&, a, n], res},

    res = Quiet @ Check[d /. x->x0, $Failed];
    SeriesData[x, x0, TensorExpand @ res, 0, n+1, 1] /; res =!= $Failed
]
Protect @@ protect;

Then, your example works as intended:

$Assumptions = (u|v|du|dv) \[Element] Vectors[3,Reals];
Simplify @ Series[
    Cross[u+\[Epsilon]*du,v+\[Epsilon]*dv]/Sqrt[Dot[Cross[u+\[Epsilon]*du,v+\[Epsilon]*dv], Cross[u+\[Epsilon]*du,v+\[Epsilon]*dv]]],
    {\[Epsilon],0,1}
] //TeXForm

$\frac{u\times v}{\sqrt{u.u v.v-(u.v)^2}}-\frac{\epsilon \left(u\times v (-\operatorname{du}.v u.v+v.v \operatorname{du}.u+u.u \operatorname{dv}.v-\operatorname{dv}.u u.v)+\left((u.v)^2-u.u v.v\right) (\operatorname{du}\times v-\operatorname{dv}\times u)\right)}{\left(u.u v.v-(u.v)^2\right)^{3/2}}+O\left(\epsilon ^2\right)$