Valid concern there. I just tested this, and the string and the raw value both are seen correctly.
def getParameterInfo(self):
"""Define parameter definitions"""
param2 = arcpy.Parameter(
displayName="False String",
name="FalseString",
datatype="GPBoolean",
parameterType="Required",
direction="Input")
param2.value = "False"
param3 = arcpy.Parameter(
displayName="False",
name="False",
datatype="GPBoolean",
parameterType="Required",
direction="Input")
param3.value = False
param4 = arcpy.Parameter(
displayName="True String",
name="TrueString",
datatype="GPBoolean",
parameterType="Required",
direction="Input")
param4.value = "True"
param5 = arcpy.Parameter(
displayName="True",
name="True",
datatype="GPBoolean",
parameterType="Required",
direction="Input")
param5.value = True
params = [param2, param3, param4, param5]
return params