Yes, because you're creating a table and the value needs to be encoded as string in the CRATE TABLE query. You could in theory pass a lambda which is disassembled in SQLalchemy, then checked against the pattern returning a constant, then the constant itself gets used... But I'm not sure SQLalchemy would go that way. It's not as crazy as Linq.
To be explicit: You're not seeing a function called later in python. You're setting an attribute on a database table.
Does there, though? You can always set `Column(default = lambda: 1234)`