“Move” is not designed for continuous collision detection in mind, so it may have strange results at high speeds (never tested myself, could be interesting to see when starts to fail), is just for simple character movement.
For complex designs that normally may break any generic engine, could be better to create a custom collision detection system, maybe using Shape/2D or the physics server directly.