Sure, here's a simple example from our code base:
FUNCTION InitializeTaxFormFiles RETURNS CHAR
(p_form AS CHAR,
TABLE tmp_errors):
You can pass handles or static tables, as in this example. One thing I don't believe you can do is return a static temp-table in the RETURNS clause. But handles work. Also, you could have a OUTPUT TABLE (static table) parameter .
IMO, OUTPUT parameters from functions are questionable style, and so is functions that are complex enough that they need table inputs. But these are both issues of taste, not functionality.