Yes, primarily, using different versions of Thrift in the same process is the problem.
The same version of Thrift could be used by both. This would require regenerating the Thrift generated bindings for the Cassandra client (as well as rebuilding the Cassandra) with an older version of Thrift each time that the Thrift API changed. Through the life of a major Cassandra release this shouldn't be too frequent, but it's painfully often during the beta phase right now. So, this would be a one-time thing for Cassandra 0.6.x, and hopefully the same for Cassandra 0.7.x once it's out of the beta phase.
It's not a simple task, but if the plan moving forward is to offer support for different systems through plugins, making use of a plugin architecture like the Java Plugin Framework or OSGi might make sense. These are nice because they allow you to control how jars are used and even use different versions of the same library for different code. Using one of these would definitely solve two of the Cassandra problems: using a different Thrift jar, and supporting multiple Cassandra versions. I suspect you'll run into similar issues with other projects, too.
If this is something that you're interested in doing, I might be able to spend some time helping.
I'm not sure I understand your questions about affecting the contents of the patch. Do you mean if Thrift 0.4.0 were to be used instead?