The 2D length between 2 points (with map coordinates E1 N1 and E2 N2 respectively) is given by
L2D = SQRT( (E2-E1)^2 + (N2-N1)^2)
If we also know the heights of the two points (Z1 and Z2 respectively), then the 3D distance between the same two points is given by:
L3D = SQRT( (E2-E1)^2 + (N2-N1)^2 + (Z2-Z1)^2)
The slope of the sector (i.e. the gradient) is given by:
Slope = (Z2-Z1) / L2D
Most roads have a gradient of less than 10% or so, but some very steep hills might get up to 20% or more. When you are skiing or snowboarding, you are probably generally on slopes of less than 50% gradient (1:2), but you might hit 100% gradient (1:1) in the really extreme stuff.
A bit of basic arithmetic gives the following relationship between gradient and the error between 3D velocity and 2D speed:
Gradient 3D Speed / 2D Speed
0% 1.000 (0.0% error)
5% 1.0012 (0.1% error)
10% 1.0050 (0.5% error)
15% 1.0112 (1.1% error)
20% 1.0199 (2.0% error)
25% 1.0311 (3.1% error)
30% 1.0448 (4.5% error)
40% 1.0797 (8.0% error)
50% 1.1245 (12.5% error)
It can be seen that for the kind of gradients you are likely to encounter while driving around, ,the difference between 2D distance and 3D distance is so small that it is not worth worrying about (generally less than 1% error).
On the other hand, when you plummet down a double black diamond ski slope, your GPSr could be understating your 3D speed by 10% or so.