Apart from the limited transaction size in MB, which theoretically limits the maximum amount of money a transaction can handle, is there any standardized bound?
Transaction outputs are the only place we specify amounts, stored as 64-bit unsigned integers. So we can specify maximum of 92233720368.5 bitcoins in an transaction output.
However, there are per-output checks using
bool MoneyRange(), when a new block is announced. This is more important, since it lowers the maximum amount that can be transacted to the 21-million figure.