In general, I agree because it's easier to test and monitor back end code. However, if the complexity also comes along with heavy CPU load, I like to push that out to the client.
Except you have no guarantees what client side compute is available. Sounds like a fools errand if you are looking for consistent performance.