Check generated C++ code of ToBePatched.FuncWithEnum. There is no Box() on enum argument, which introduce a compilation error.
int32_t L_3 = ___a0; // __a0 is enum but passed as int32_t
NullCheck(L_2);
IL2CPP_ARRAY_BOUNDS_CHECK(L_2, ((int32_t)0));
ArrayElementTypeCheck (L_2, L_3); // L_3 is not boxed.