1) The script can be used directly. Maybe you can clarify your question?
2) The script is fairly readable, though less-well documented than bin/catalina.sh. Most of the environment variables recognized by bin/catalina.sh are also recognized by bin/daemon.sh. For instance:
CATALINA_HOME
CATALINA_BASE
CATALINA_OPTS
CATALINA_PID
CATALINA_OUT
CATALINA_TMP (note: catalina.sh uses CATALINA_TMPDIR)
JAVA_ENDORSED_DIRS
JAVA_HOME
JAVA_OPTS
TOMCAT_USER
It also accepts these (undocumented, other than by reading the script itself) command-line arguments with fairly obvious behavior:
--java-home
--catalina-home
--catalina-base
--catalina-pid
--tomcat-user
--service-start-wait-time (sets the "wait" time for jsvc)