Part of the problem with doing this sort of thing is that it undermines the EU's ability to make agreements. Like, the EU tells Bulgaria and Romania that they can join Schengen if they do a given set of things. They have uncontroversially done those things. But then some member states decide to take another round of extracting concessions.
So what happens next time the EU cuts an agreement with a country over accession to the EU or joining any EU entity, like doing Schengen integration or military integration or whatever? I mean, those countries are going to say "are these actually the terms I'm signing up to do or are some individual members going to have surprise hidden concessions that they are going to demand at the end of the process?" That's going to make it artificially difficult for Brussels to ink any agreements that might be in the interests of the aggregate EU.
None of this is to even argue against states having a veto. I'm just saying that if an existing member is going to veto a long-running process, then the conditions for that should be visible to the incoming member at the time they decide to embark on the path. They should not be whatever new conditions member state governments come up with at the end of the process, after the incoming state has upheld their end of the deal.