это отражение архитектуры процессоров. никто не пишет в рам "символы", туда пишутся байты. символы — это интерпретация.
на счёт типизации. есть интересный вариант в хаскеле, когда гардами можно проверить подходят ли параметры для функции. можно было бы и в перле так же оверлоадинг сделать