1. Изменяет, но не так агрессивно.
2. Можно придумать другой пример, более абстрактный, оперирующий только массивами данных. В нормальном ЯП можно сделать нормально, но для этого нужны как минимум дженерики и кортежи. В Си придётся либо делать out-параметры, либо на каждый чих пилить структуру и возвращать её.