My current view is that the weekend on-call shouldn't be done. Is it the correct decision? How do I politely express my concern to the client?
In general, on-call happens, and it does happen on the weekend. I've done it before big deployments. Sometimes, the big deployment happens during the weekend. Usually, this is scheduled months in advance. Asking someone to go on-call for the weekend right before the weekend is not a nice thing to do. If the person has already made plans that cannot be easily changed without expense, I think it's fine to say (as an example)
I've made travel plans that cannot be refunded at this date. If you would consider compensating me the cost of my weekend plans, I'd consider doing the on-call.
I know people who have made that offer (and they were serious, they were going to cancel their trip) and the client chose to delay the "urgent" situation until the beginning of the next week rather than pay for someone's weekend travel plans.
Of course it's up to you. If you have plans that you do not wish to cancel (for whatever reason), I would go with
I have already made plans this weekend, and I cannot cancel them.
You don't need to give them reasons, and if they really demand, tell them it's "personal". It's really none of their business anyway.
And it must be made clear to them that in the future, any time they wish to schedule work outside of regular business hours, you will require two (or three, or whatever you feel is reasonable) weeks of advance notice or you will simply be unable to guarantee availability.
the client has issues with planning and trying to push new features on the last day before release.
This seems like a much bigger issue. Is the client aware that they are putting this project at risk by pushing new changes this close to their deployment?