Well my tasks are mostly on trajectory optimization, optimal control which you have a couple of examples in your Nonlinear program tutorial. I hope one day you might consider CasADi to match and exceed as well. Because you are already almost there.
There is might be some performance penalties because of how you working with hessians (or might be not).
One more inconvenience from my point of view is inability to use decision variables in nonlinear expressions directly. I cant pass them to my function to extract expression as a return as long as my function contains any nonlinear and non-quadratic calculations. One have to use macros to code nonlinear expressions which is not convenient for large problems with hundreds of constraints. Or have to generate expressions programmatically extracting them first with Symbolics.jl from function… I don’t know if there is a simpler way.