The plan is to replace PRS algorithm with something reasonable, i.e. with extended Zassenhaus algorithm for multivariate polynomails (I'm working on it now) and modular gcd algorithm for univariate ones.
Also I'd like to implement more efficient representation of polynomails and rational functions.
Did you consider the option of writing GiNaC::ex to giac::gen converters and use giac factorization and gcd code instead? I guess it would save you a lot of time and headaches (I have worked and extensive amount of time on these functions, I know what I'm speaking of) without much loss of performance since the initial and final conversions do not take much time with respect to these algorithms. Moreover, GiNaC would have access to more advanced calculus functions like integration, limits, etc.