I guess it’s done that way because of fiat exchange rate fluctuations. It’s hard to run a retail business with open-ended invoices where you can’t guarantee what the fiat price will be the next day. Some wallets like #[2]​ let you set a custom expiration time.