I think the agreement is just that - an agreement that both parties (owners, union) agreed to, including the good and the bad. I assume there are aspects that one party finds distasteful at times, but it gets offset by another clause that works in their favor. You have to live with the terms as written. As for service time, there is no qualitative component (i.e. was Bryant "good enough" day 1). and the number in the contract (172) is so close to an entire season that this was one clause that the owners worked in their favor. The union is primarily made up of players who will not be impacted by this clause (they've already been around long enough), so this works against the young guys (i.e. MiLB type players trying to break into the big leagues).
As for salaries as a percentage of revenues, apparently salary totals are very heavily weighted towards a small percentage of players that have huge contracts ($20 million+/yr) so increasing the total percentage really does not translate equally to all players - just makes the really rich guys a little richer. I guess you could increase the minimum salary to $1 million, but that would address the percentage issue to any real degree.
How about allocating a percentage of revenues towards MiLB salaries? I guess you cannot really do this given that different MLB teams have varying number of MiLB teams, but I'd be interested in knowing what the current percentage is.