coordinate_descent is the exception, since it plays tricks with X is X_init that I don't fully understand yet.