If webmin is already started, script does not recognize it and tries to start webmin again. If pid file is deleted, the same thing happes. If webmin is stopped (or pid file is lost) and you try to stop it via "/etc/init.d/webmin stop", it complains about not finding a pid and exits with status 1.
That is not correct behaviour which makes problems for management software that monitors other services, like "monit" or heartbeat. Script should be able to recognize at least that webmin is already stopped.
I will try to write new script for RHEL/CentOS, so you can put it into RPM package, if you are interested.
The issue with it failing if you try to start it twice seems harmless to me - and normal, as that's what happens with many other init scripts.
The issue of it failing to stop Webmin if the PID file is gone seems un-avoidable .. without that file, the script has no way to know the PID.
However, I would be interested in seeing your script changes to fix this.