Hi,
Consider CV1 - it contains one value - the short address. If you wish to change the short address to, say, 55, you have only to program CV1 to 55 and you are done.
CV29 on the other hand is perhaps the most common CV that gets changed which contains multiple, independent pieces of information. For instance bit 5 is set to one to use the long address, bit 4 is set to one to enable the use of the speed table.
If you wish to enable using a long address yet leave the other bits alone you need to read the current value in CV29, set bit 5 of that value to a one and then write that updated value back to CV29.
Certainly if you know what values you wish to set for each of the possible bits you can just write CV29.
But the programming tools I have used all read CV29 first when changing it.
YMMV.
Frederick