The skew_heap_node constructor taking an rvalue reference makes a copy instead of moving it in. This prevents the use of move only types with skew_heap.
I'm pretty sure that you just need to add std::move to the initializer list construction. E.g.
skew_heap_node(value_type && v):
value(std::move(v))