DC is really hard describe for many reasons. Many account including mine suggest the mod was at most fun at the earlier versions but the "this is new and exciting" bias is very strong. Another strong bias is that when most players are new to the gameplay and there are say 30+ players in same map together, the skill levels balance out. As time goes on poor players leave and only the most devoted stay, increasing the required skill level enermously (at this point anyone new entering to the play will only see cheaters but in addition to real cheaters there's just a huge skill gap). I considered myself slightly above average level player and it stopped being fun toward the final release - presumably part due to balance changes made from 0.3 toward DC final and part to only very skillful players left (I'll dig bit deeper on this).
One issue with all the BF games (that I've played) is the respawn system. It puts a heavy penalty on dying (15-30 sec out of game/death in 10-30 minute match) and when the poorer team is constanty on respawn timer you can guess it doesn't really work out in terms of everyone having some level of fun. Also having half of the players dead after one bomb drops on the right spot seriously messes up with the tempo/action element as there's going to be a lul of respawn time + getting back to action. The goal should be to maximize the time everyone is actively playing, penalty for death being simply that the team goals may not be achieved.
I haven't completely thought about solving this but I think the solution is to drop respawn timer to 3 seconds during which you see exactly how you were killed and can choose to submit this replay to the dedicated server admin for banning the IP of the killer if he determines based on the several replay submission that it's a cheater. This handily also removes the snipers from the game leaving no option for many members of the team camp in one location for more than a minute. After you die you would respawn in location that cannot be near the one you died in.
There should also be strong incentives against focusing on kill counts and ratios, namely, not showing at all in stats who killed how many, but instead focusing on who were doing the right thing at the right time in assisting achieving the goals. However to avoid console-arcade perception there should not be any popups/kill streaks/ingame achievements or whatever bs that are unrelated to the team goals.
BF had/has problems in public servers with people running to the planes and then possibly getting team killed by those who did not get them. I did not experience this that much but have heard it was a major problem in some servers. I think the solution to this could be some type of system where you could reserve the vehicles to be available to you. eg. if you play a lot of infantry then you'll have more and more time to fly planes later or perhaps ability to get extra plane to the field when you most need it by spending more of the "points" you got by playing just infantry or medic etc. Of course this means one can't focus on solely flying but in my estimation if everyone had an Apache for themselves in DC they'd all have flown them. That might also work out if everyone had just *single* Apache available for the duration of the match so they'd have to make the best of it - which might not be during the start of the map (you'd want to go to Anti-Air station at start of the map if everyone else is in their only Apache).
Here's a nice intro video from early DC days (not sure I'd seen this one, they changed the music and intro couple times). Sort of suggests what this game was about. Hint: Not much infantry seen.