Because Umbraco is using an XML file which contains the complete content tree (for speed purpose), all values are converted to strings. When you read data from Node, you are using the NodeFactory which uses the XML file.
The GetProperty method is the correct way to read properties and indeed returns all values as string and in case of a boolean, you need to use a .Equals("1")
function or convert it to a Bool.