Under normal circumstances, yes "0" will be returned as 48 (30H). The reason I say normal circumstances, is that any input driver can be hooked or replaced entirely and if your app is specifically oriented around digits only, then 48 - 57 (30H - 39H) could be returned as values 0 - 9 by the keyboard input driver.
You can find a myriad of conversion rountines, that will convert digits whether they come from keyboard or elsewhere to 8-16-32-64 bit signed or unsigned integers and even BCD and floating point values.
Even the keyboard does not pass 53 (35H) to the driver, rather 2E when the "5" key is pressed and F0 2E when it's released. The driver recognizes this and converts it to 53.