Hello!
I'm Keval and I'll be applying for GSoC this year.
After going through the ideas page, I found
Step-by-step Expression Visualization project very interesting and practical for improving SymPy efficiency to explain what it's exactly doing.
A good approach to implement this would involve solving the problem in stages, where one will be given intermediate solution (also presented as the output). Another advantage of this would be the use of already implemented _eval_derivative method and similar properties.
We can have an extra method/variable defined which allows us to find whether the expression can be solved in any other way than "hand-algorithm". If not, then we would follow the default procedure, to achieve minimal redundancy of code.