CDK experience has been mixed. Prior to GA it was all over the place, but it's gotten more stable now.
A lot of cloudformation quirks leak directly into CDK. And I've learned to be patient (e.g. one change at a time, roll though all environments, do adds and deletes separately...).
Right now using it is 50/50 for me. I'm assuming as more construct libraries become commonplace that will help the most (up until recently this was hamstrung by the amount of breaking changes)