The issue isn't that they're constants, but that GP called them "true" and "false" and assigned the opposite values you'd expect. You can break it in exactly the same way with variables: https://play.golang.org/p/EVU84l0A57I
Kinda crazy to me that Go doesn't reserve the words "true" and "false", but ¯\_(ツ)_/¯