Unfortunately, that is very likely the biggest reason.
The CPU is complete crap at managing their roster in general.
Teams in M15 CFMs have drafted 4 QBs in Rds 1-2 in 3 years more than once in my 3 CFMs. The CPU never leaves room on their roster for any FA, or trade moves and that is just poor execution on the part of EA/Tiburon.
Ideally, the rosters should be tweaked - incorporating the number of players a team has on their 53 man roster and the "practice squad" which is currently ten players. So now imagine a CPU team offering you a darft pick and 2 players for a player to fill a weak spot, or replace an player with a season ending injury.
The game could be programmed to allow a trade to take a team , user or CPU over the roster maximum. This excess on the roster would have to be trimmed before entering a game - in other words you would get a "cut required" message on your actions screen for a user team and would not be allowed to enter the game without making the required cut/cuts - the cpu would just auto-cut at the time of advancing, just like they do in preseason currently.
Any player cut outside the "offseason" would enter the waiver wire - if a team claims a waived player they would pick up that player's remaining contract, and then again would be forced to "cut player" before entering a game or before selecting "ready to advance".
This is the ideal way to accomplish this - this way the CPU team could be more flexible, and more easily programmed to better manage their roster.
Example - Jaguars enter the season with only 2 TEs on their 53 - and no practice squad TEs, 1st game their #2 TE breaks his collar bone. That being a lengthy injury, but not (at that point) really a need for IR. So, they sign a TE from off the FA list and then cut 1 player. Or they offer you a trade - you have TE depth, so they offer up a DT, a FS (areas where you have poor depth) for your #3 TE who is better OVR than their only healthy TE - You like the offer so you accept - you get back to "action screen" and now have to make a cut.
I am fairly certain, at least in terms of waiver players, that NFL teams have a short window after being awarded a waiver claim to facilitate that roster spot - meaning they are awarded the waived player and then have to cut a player to be back within the roster limits.
I fail to see why this would not work for facilitating trades, injury related FA signings and so forth especially where the CPU is concerned.
As far as trades being realistic, well that is a debate that could go on for hours and hours and never get anywhere.
So, as always, I turn to the best, most obvious answer - optional settings!!!
I want to play in a strict rigid old school franchise where the CPU to CPU trades only occur during the draft and only picks for picks.
You want to play in the "wild, wild, west" where the CPU can trade any combo of players/picks for any combo of players/picks any time (within the set NFL rules of course) they wish.
Both of us want to limit user trades to human to human only, except during the draft where picks for picks with the CPU is acceptable.
I fail to see why EA/Tiburon has not accepted the idea that customization is the bare minimum for games in this age.
I would love to see separate settings for CPU trade interactions and user team interactions.
And settings for trade difficulty, FA resigning or signing where - by a slider or difficulty setting you could have the CPU play straight up in those areas, or give the CPU decided advantages;
Say setting CPU FA to "pro" would give users a sleight advantage in FA in terms of resigning costs, or team appeal to FAs. Where setting it to All-Madden would drive costs on user teams up, and decrease team appeal to potential FAs when compared to CPU teams.
CPU trades could be difficulty based as well - "pro" would be like it is now, All-pro would be like every CPU team having a GM who is stingier in his assessment of his players, and less favorable to user player value,
All-Madden think Dallas/Minnesota H. Walker trade - Dallas collected 5 players, 3 1st RD picks, 3 2nd RD picks, a 3rd RD, and a 6th RD pick
for H. Walker, 2 3rd RD picks, 1 5th RD pick, and 1 10th RD pick
That trade brought Dallas - E. Smith, Darren Woodson, Russell Maryland, Alvin Harper all major contributors, stars even, and Dixon Edwards and Issiac Holt who were solid defenders essentially for one guy.
Now imagine setting the CPU to Jimmy Johnson (ALL-Madden) trade negotiator and playing your multi-user CFM with all trades allowed - how much more fun would CFM be if you had that level of customization and freedom.
Now, imagine CPU scouting had a difficulty level that you could set (and potentially up the difficulty between seasons if required).
Now, imagine having a setting for the CPU for player development
Now, just imagine all that - imagine how much more fun you could have in Madden if the CPU had settings for these things. Imagine how much more functional solo CFM would be if you had that, imagine how much more freedom you would have in multi-user CFM with all that.
Now imagine all that and additional slots available for trades - where you could trade a combo of 10 picks/players to go get the next Andrew Luck, or Calvin Johnson, or Walter Payton.
Yeah, yeah I know wish in one hand...
But imagine...