А чего Вы, собственно, пытаетесь добиться этими действиями?
Если речь о памяти, то в Go внутреннее представление строк — UTF-8. Когда Вы пишете
charLine := "слово"
, Вы определяете UTF-8-строку.
В Go строка может быть конвертирована (туда и обратно) только в два типа — в []byte и в []rune. []byte — это изменяемая копия байтов неизменяемой строки, []rune — результат парсинга UTF-8-байтов строки в 4-байтовые unicode-коды.
Вопрос, почему только эти два, а не, скажем []float, лишён смысла. Потому что так сделан язык. Если Вам нужен []uint16 — ну напишите свой конвертер, это не сложно.
В документации это всё описано тут:
golang.org/ref/spec#Conversions_to_and_from_a_stri...