well, when it comes to reuseability i try and keep things simple... systems that can be applied to other games and gaming situations with little modification.
so, say that i have a weapon selection system that i want to reuse... i try and keep it isolated such that it can communicate with the appropriate other systems but not so ingrained into the rest that it is tricky to optimize it for other games.
this does come with it a bit of a downside in that it leads to games with more FSMs on objects than normal... which i've been reading can bog the system down if you go crazy with it... but to me it's a balancing act.
for instance, that weapon selection system that i mentioned is isolated from the weapon manager... the selector only selects and sends an event to the manager... the manager handles variables such as the amount of ammunition that a weapon has, whether you've unlocked it/picked it up and also toggling the various weapon systems themselves on or off... and the weapon systems themselves usually have a couple scripts on them... one for handling various statistics, one for handling how the weapon fires and one for whether i need to monitor some inputs (such as whether the player is holding down a mouse button, space bar, etc.)
but the part of it is that once i've cracked one system, since a lot of weapons work in similar methods, it's a simple matter to pare out the core mechanism, save it as a template then just re-import it in whatever system i need (and i've used this for more than one game.)
you're right, using Playmaker does require a bit of a change in how you think about things but in the end the level of flexibility is pretty darn good, especially if you can learn to think modularly.
for instance... i've managed to get one system done for my first game, i can use that same system for other games (mainly it's AI that i'm focusing on though since AI is a fairly universal thing for most games.)