Физически вы правы.Сохранение энергии должно гарантировать, что скорость тела остается постоянной.
Однако Box2D не может в полной мере представить физику.В каждом кадре будет небольшая ошибка, и эти ошибки складываются.Я не знаю, как Box2D обрабатывает соединения, но если он проецирует положение объекта на окружность, это приведет к тому, что расстояние, пройденное за кадр, будет немного меньше, чем было бы без соединения.
Bottomлиния: не стоит ожидать, что скорость останется точно такой же, как вы начали, и вам нужно будет компенсировать это.В зависимости от ваших потребностей, вы можете либо устанавливать скорость вручную в каждом кадре, либо использовать вращающееся соединение, закрепленное на планете с мотором.