Thanks for this. SO much anti-union bias here.
If you are in a Union and don't like how it's doing things you can get involved. Go to Union meetings, become a Shop Steward. Unions are fundamentally democratic.
As to "merit", typically merit is determined by whoever pleases the manager above them the most. At least with seniority there is an objective measure, how long you've been doing a job. I've seen lots of idiots promoted on merit because they say the right things to the right people (which is arguably maybe the most important skill for getting ahead in life so maybe that's as it should be). I've seen idiots based promoted based on seniority as well, but at least they have lots of experience.
Even under a Union you can be fired, it just has to be justified, it can't be arbitrary. In my experience there is typically some form of graduated discipline: verbal reprimand, written reprimand, suspension, termination. I expect the Union to grieve each step since it is the Union's responsibility to advocate for all members, but if management documents all infractions, it's entirely possible to accomplish.