The Python sorted function returns "a new sorted list from the items in iterable," which means the entire iterable will be consumed. The sorted function does use an incredibly efficient sorting algorithm, so it will be faster than someone trying to role their own, but the entire data set will be touched. Since the entire data set needs to be touched, using the Python max function achieves the same end:
def cfmax(tbl, fld):
fld_max, = max(arcpy.da.SearchCursor(tbl, fld))
return fld_max
If you are using an enterprise database, relying on the database engine to process the information on the server instead of pushing all of the data to the client would likely perform the best.
def cfmax(tbl, fld):
sql = "ORDER BY {} DESC".format(fld)
fld_max, = next(arcpy.da.SearchCursor(tbl, fld, sql_clause=(None,sql)))
return fld_max