> return Num * Multiply * RFactorial( --Num, --Multiply );
Your understanding of -- and ++ is wrong.

First of all, you need to understand what a sequence point is.
Question 3.8
The side-effects of -- and ++ are fully resolved at sequence point boundaries.

You might imagine that the blue part happens first, but there's nothing in the standard that says it should be.

The result is, you have no idea what your expression will result in.

> i got a warning saying the behavior could be undefined or words to that effect
Yes, your compiler is correct.
Heed the warning and fix the code.
Code:
$ gcc -Wall -O2 foo.c
foo.c: In function ‘RFactorial’:
foo.c:27:41: warning: operation on ‘Num’ may be undefined [-Wsequence-point]
   27 |     return Num * Multiply * RFactorial( --Num, --Multiply );
      |                                         ^~~~~
foo.c:27:48: warning: operation on ‘Multiply’ may be undefined [-Wsequence-point]
   27 |     return Num * Multiply * RFactorial( --Num, --Multiply );
      |                                                ^~~~~~~~~~