Use available methods to determine fees and account for this when determining the user's max buy. We have received user reports of errors trying to max buy due to insufficient utxos, which was expected based on the introduction of this feature.
We may have another issue in the future -- that is, user's max buying only to realize they have no XEC left to do any other token txs, including sell. So we may want to do something like "max buy always leaves the user 5,000 XEC" ... this though is complicated as well, because what about the user who does not have that much XEC but still wants to buy tokens? Will need to see how this plays out in reality before optimizing there.
For now, there's nothing wrong with getting the exact fees, and it is one of the major advantages of XEC over say ETH or even SOL, where users will always have annoying token/L1 dust in a wallet forever since fees are always guesstimated.