Because public means that the function can be accessed. If you make it a stock it will be as a private function and when you will use the native you will end up with a crash or a amxx error.
I know...
I just wanted to know why he wanted to use a public type function. His message was bad english too.