Why is caching skipif/xfail expression results by string alone incorrect in pytest?