This behavior is the same for both a skeletal and static mesh. It is called World Position Offset for a reason, after all. The vector you input to the WPO is added to the world position as an offset, regardless of mesh type.
The important difference between a skeletal mesh and a static mesh is that skeletal mesh offsets generally need to be stored in tangent space, and transformed into world space before going into the WPO. If you want the offsets to be relative to the underlying mesh as it animates, at least.
To correctly map the offset values, you would need to divide all offsets by some maximum value factor when baking that will bring them all into the range of 0-1. This way, the 0-1 vectors can be re-multiplied by the known factor in the material to restore the original range.
8 bits, however, is quite low for storing vectors. This is evident even on 8 bit normal maps, and the position error magnifies over larger offset distances. If it is good enough for your needs, then by all means.
Vector Displacement Maps are usually either 16 or 32 bits, so that the offsets can be stored significantly more accurately but obviously the memory requirement scales with it.