Thinking about this thread, i came up with an idea, i don’t know 100% sure, but certainly, no other 2D editing program i know about uses, which is to use Catmull Clark subdivisions to warp layers content. Let me explain.
Warping tools are quite a comodity when it comes to adapt layers to previous content, namely textures, texts, effects… Despite having Krita quite a decent array of tools, none of them cover properly the task of providing a flexible and yet easy to use deformation tool. Warping may add too many points when they may not be really necesary, for example for long and thin layers, the contouring tool still doesn’t provide a good deformation, as they tend to pinch too much on the vertices, and the liquify tool currently is not as fast as one would wish.
The solution i came up with is Catmull Clark subdivision surfaces: flexible, responsive, intuitive and efficient, with exceptionally good results, very little necesary input and processing power.
This is frequently used in 3D packages to create organic shapes, as with a few starting points, the subdivision takes care of creating nice looking shapes later, in which the flow of the starting points isn’t heavily distorted. Its creator went as far as to demonstrate that in the case of infinite subdivisions, the method converges towards a bicubic patches interpolation of the initial quads. Blender3D uses it, for instance, so it can be used on free software as Krita.
An advantage is that it doesn’t need to have a square amount of control points. For a long and thin vertical layer, it is possible to have a rectangle with just 2x10 control points. Then, the preview can work with as little as two or three subdivisions and the final result can have as many as desired (6-8 subdivisions can provide a really large amount of detail) , as this parameter can be free. Also, this method is suitable for GPU acceleration, as an OpenGL geometry shader could take care of both rendering the previews and the final results on the GPU using as inputs just the mesh with the control points and the selected subdivisions. But calculating the points on the CPU is just as good an option because the calculations are very fast.
Drawbacks, of course, there are. As this is a numeric method, the quality is proportional to the amount of subdivisions, but unlike 3D software, these generated points are only necesary while the results are being calculated, AND there is the posibility of using geometry shaders if desired, so this is really not that important to have good results with relatively small effort, so there is a balance. A low number of subdivisions can be used for preview purposes, and then the larger amount used for the final result. Another drawback is that there is no control over the tangents of the control points, for that, a larger number of control points could be necesary, but not many.
I don’t know how hard would be to implement, but certainly, is feasible and it shouldn’t be very diferent than implementing the warping tools, but even with these drawbacks, the efforts of including such tool can be quite satisfactory and produce a very positive outcome in the long run.
Thanks! I hope this serves to provide a new and useful feature and keep the awesome job!

