How to mix destructive and non-destructive modifiers to maintain vertex order for mesh-cache?
Duplicating mesh data won't change its vertex order, so to answer your first question - yes this is supported.

As for destructive modifiers (boolean, decimate, build... etc). These will change vertex count and order, not for the mesh-datablock, only within the modifier stack.
So destructive modifiers must be applied after Mesh-Cache modifier, for this to work as expected.