It is not so clear, but we've had discussions about similar topics. A first place to look would be here but there doesn't seem to be anything about Underload yet.
From the "default IO for code-golf"-question it seems that taking inputs as predefined variables is not accepted   which is also argued to make the answer a snippet which is not accepted either , but at the same time there seem to be exceptions, for example if you use a variable that just stores the result of the last execution  or if you are using assembly  or some form of turing machines  (I'm not sure whether this also covers BrainFuck).
One question mentiones Underload in the context of functions , another one also asks about underload and the use of point-free functions , so it seems writing lambda expressions/pointfree furnctions to make your submission a function is the best way to go, because functions are allowed by default .
I'm not sure about the numbers, but since unary is allowed  and using the byte values as numeric input is allowed too  I'd argue that the default of using Church numerals in Underload should be allowed too.