I haven't quite beaten the game yet, so I haven't experimented with having double functions, but I discovered a wombo combo yesterday that I'm really surprised no one has mentioned:
Flood() + Void() and Cull()
I tried this after being happy with my "utility" abilities and looking for a really powerful active, and boy did it deliver. This active does nutty damage, doing 200% Flood() damage (that's a lot), and the Cull() upgrade makes enemies get stun locked and stay within the Flood() range. While 1 may not finish a foe, 2 or 3 are guaranteed to after Crash()ing. If anyone knows of a more damaging single-use active (Load()'s explosion doesn't even come close), please, let me know.
The trick is how to land such a short range but devastating active... and that is where my other active comes in:
Get() + Breach() and Bounce()
This is an amazing utility active. It allows you to group up pretty much every enemy in an encounter and then proceed to lay the smack down on 'em. Breach() gives it crazy range and object penetration, and Bounce() ensures that it branches out and hits any other nearby enemies. It's Turn() cost is so low that you can use it multiple times to set up the rest of your combo if the enemies are spread out. Not to mention Get() can do some pretty decent damage at max range! Get() also has a very short cast and recovery, making it very useful outside of Turn(); while this doesn't help too much with combat (because who wants enemies in their face outside of Turn()??), it is invaluable for collecting stray Cells (especially when shielded!) and for pulling Cheerleaders away from their friends.
The last key active I use is:
Crash() + Jaunt() and Ping()
This is my "spam" ability, and it works wonders outside of Turn(), as well as provides a solid Crash() active for softening your foes up. Jaunt() makes Crash() instant cast and usable outside of Turn(), and Ping() makes it even more spammable by reducing it's cast time by 20%. It's so quick that it can easily stunlock an entire group of enemies. In fact, using the Get() active above and then this, and then repeating, you can stunlock an entire group of enemies indefinitely.
Your fourth active can be whatever you have left over Memory for: I'm a fan of Load(), but dropped it when Flood() came around because I find Flood() to be more reliable, especially in the above combination(s). For now I am using Mask(), which is a fantastic escape tool when you are out of Turn() and the shit hits the fan. I haven't had a lot of time to fool around with Tap() yet though, and I hear it's pretty dope.
So in conclusion, gives this set up a try, and follow this Turn() combo:
1) Get() + Breach() and Bounce() - Pulls in all targets and does a decent amount of damage, setting enemies up for Step 2. Can use multiple times, if necessary, to gather all foes.
2) Crash() + Jaunt() and Ping() - One Crash() just for the debuff, hitting all gathered enemies.
3) Flood() + Void() and Cull() - Spam this bad boy until you run out of "Turn() Juice", or until you see that glorious "OVERKILL!" message. With all the enemies bunched in front of you thanks to Get() and bumped back a little with Crash(), they will be in the perfect position for Flood() to melt their lifebars. The Cull() addon ensures that they stay locked in position so that the full fury of Flood() can wreck 'em, and give you a little breathing room from any survivors when Turn() ends. And if, IF any enemies are still alive, you can freely spam Crash() outside of Turn() and quickly finish them off while stunlocking them.
Since I started using this combo, the game has been a cakewalk. Again, use whatever you like in the fourth slot/passives. Load() is still great, but it actually doesn't work too great with this Flood() combo, as the Cull() passive keep the packets in the air until Flood() has passed, which can mess up the explosion timing.
Let me know how it goes! ;)