Why process leader can not call setsid()
To guarantee that processes in a process group are in the same session. Once this guarantee is in place you can think of a session as a collection of process groups.
the main usage of setsid is to make a particular process to lead the group. Once this level is achieved there is no need to call setsid() once again.