Both Swish and BankID have fees. After all, they're run by for-profit corporations.
Those apps also reduce competition in the banking sector since they're controlled by a few banks which generally have very high fees on their other services.
What's even worse, since BankID is private, there's no individual right to get it, and I've personally experienced banks abusing their oligopoly (buy this extra service or you won't get BankID from us).
The Swedish situation is a nightmare which nobody should try to emulate. Fortunately, the Swedish government has finally announced plans to introduce a public government eID, although 20 years too late.