When signing free agents, if you are over the cap (which I currently am) then the following rules apply (copied from free agent sign dialog):

Sign and drop transactions must meet all of the following criteria:
1. The dropped player(s) salary must be greater than your offer, or your final salary must be below the league salary cap;
2. If staying over the cap, the player to be signed must be in the bottom 10 salaried free agents;
3. You must keep at least 14 hitters and 11 pitchers on Active or AAA rosters (including the signed player);
4. The dropped player(s) may not be involved in other pending transactions.

Despite these rules I have noticed that it is possible for me to make an offer to a $50,000/year player in this situation while dropping another $50,000/year player. However, when I do this, the offer never gets accepted. Instead, a few days go by and then the transaction disappears and the player returns to free agency, as if I had never made an offer.

It appears that the game is (mistakenly) allowing me to make an offer that I shouldn't be able to make, and then validation checking is performed right when the player is about to sign, causing the transaction to be canceled. I should never be able to make this offer in the first place because the players salaries are equal (which violates the first rule from above).

If this is an accurate assessment of the situation, then I would propose performing validation checking at the time when the offer is made so that this offer will be rejected before it ever has a chance to go through.