The implicit parameter declaration is a warning only because this is legal in ANSI C.
The point is, as bigmac mentioned, the type of implicit parameters is deduced from the actually given arguments, and given the ANSI C rules of expressions they end up being at least int. So there is no legal way of an implicit parameter declaration of a function with a char parameter, but the compiler cannot issue an error for this case as he only sees the usage and not the declaration.
About the actual parameter passing, out of my mind the parameter passing is different for a single 16 bit argument for the HC08 and the S08. As the S08 has improves capabilities for using HX together, the compiler is using H:X if I remember right (really not sure).
Anyway, in the first pattern the BSR did jump to an internal label, while in the second path the actual function was called, so the two patterns really do not show the same. The first pattern compiled with -OnF would probably show more. Anyway, in C never use implicit parameter declarations, configuring this warning to an error is highly recommended.
Daniel