A constant function contains a system task invocation which will be skipped during constant evaluation. This could yield unintuitive results.
localparam string foo = func(); function string func; automatic string s; $swrite(s, "asdf %d", 3); // Noncompliant return s; endfunction