Reference Variables cause the selected variables to be passed by reference and is mostly only useful when needing to change the variable instead of a copy of the variable. Primarily to be used with Code actions or during PHP Output usages.
Variable Looping loops the selected variable through the auto action. So for example if the variable selected is an array of rows and you want to change something about each of those rows in that array you'd loop that variable and you can then do so using [loop_VARIABLE] substitutions to get its values.
Both of these usages are being utilized by System Actions. For example "CB Activity - Privacy - New" and "CB Activity - Privacy - Edit" are being used to output privacy controls for CB Activity while "CB Activity - Privacy - Authorized" is using looping to enforce those privacy controls.