When comparing alternatives, only a volume test in a real-world environment will determine which is faster.
Having said that, assuming that neither the function call nor the procedure call is combined with other operations in a single statement, and assuming the function is actually called (function caching does not happen), there should be no difference...
SET @variable = f ( whatever );
versus
CALL p ( whatever );
Those are big assumptions, however... as is the assumption you're using SQL Anywhere 16... tell us more.