Yes, StringBoolean can either use Python bools for internal representation, or Strings that parse to bools. Currently, we use StringyBoolean (and StringyFloat) for anything that is shown in the metadata editor because we send the values back as Strings.

I'm somewhat surprised that Boolean and Float would work at all based on how we send the values back from the client. I'm tempted to do some debugging in order to understand what is going on... But in any case, the Stringy versions are definitely safe.