I know why it is a CGI. There was already a webserver running on the port, good programmers built the daemon to stay running, it handles the port it answers unambiguously, it provides a simple interface that can be accessed with just a couple lines of perl without understanding any of the high magic of networking, the webserver has authentication/authorization built in, and he already knew how to do it.
Unless you a are a masochist who gets off on network internals, why wouldn't you call a remote script using CGI? :)
$you = new YOU;
honk() if $you->love(perl)