XML Standards require time to be in the format of "HH:MM:SS" (with timezone info as optional). Thus, when you have the node set to the Time data type, InfoPath does conversion for you to get a valid time enty. When the node is a String data type, InfoPath will make no such conversion attempt.
This is expected behavior.
When you dropped the Text Box or Expression Box (bound to the Time data typed node) into the view, InfoPath is smart enough to assume you want to show it with time formatting. Therefore it defaults the format to Time. You can go in and change this default to Text formatting, and then it will show "00:00:00" instead of "12:00:00 AM".
This is expected behavior.
If you drop a Text Box or Expression Box (bound to the String data typed node) into the view, InfoPath will will assume that the field content will be a string value and will therefore use text formatting. This too can be changed.
This is expected behavior.
The benefit of using the Time data type as opposed to the Text data type is that you get all the built-in conversion and validation. This is a huge benefit if you are really tracking time. If you don't like the way it is being displayed, go into the properties and change the formatting to something you like.