Why does pytest cached_eval in MarkEvaluator cause incorrect skipif/xfail results?