Math functions should take the largest type possible (usually long double).
Functions accepting or returning pointers, in projects that use far pointers at all, should always take and return far pointers, unless it is absolutely guaranteed that the function will only ever be called from places where far pointers will never be necessary. (Better yet, use an OS (or memory model) that doesn't give you all this near/far bullshit!)