So how can I be sure they're not lying? Is there any way to check this?
You really can't be sure especially with hardware wallets like Safepal and Ledger that are totally closed source and protected with various NDA agreements, but what you can do is to generate your own seed words offline and then import them in your hardware wallet.
There is server communication with all hardware wallets for updating price and balance but so far there was no reported identified flaws of leaking seed words.
I would always give advantage to Open Source hardware wallets like Trezor, ColdCard or Bitbox and use dices for manually generating seed words and not trusting their random generators.