1: Yes there is lot's of difference between a macro and a sas function. A macro generates text that is interpretted by SAS as instructions. The macro could do something such as call an external program with parameters, send results of procedures to documents, read external data files, log on to remote data servers and perform various actions. A user defined function using PROC FCMP is more of a computational function callable by data steps and a limited number of other procs.
2: The major advantage I see to user defined functions is to make code simpler to read especially in the case of functions that may take lots of code. The main disadvantage is portability. You need to remember to provide the function code as well as a specific program. If you forget that you may have an unuseable program.
3: don't do clinical trials so I won't respond.