Should I add set nocount for functions?
Functions cannot return data to a client so I can't think of any use of SET NOCOUNT ON. If you do try to add it a function you'll get an error. SQL Server considers it to cause a side effect:


  function_body
  
  Specifies that a series of Transact-SQL statements, which together do not produce a side effect such as modifying a table, define the value of the function.


For example, the follow code throws an error:

CREATE FUNCTION X_JRO_TEST() 
RETURNS INT
AS
BEGIN
SET NOCOUNT ON;
RETURN 1;
END;



  Msg 443, Level 16, State 15, Procedure X_JRO_TEST, Line 5
  
  Invalid use of a side-effecting operator 'SET OPTION ON' within a function.