I got to thinking about this recently... With a system where tile data is copied to VRAM from program ROM, the assembler will update all the pointers if data is inserted or removed, but it obviously can't do that here. It might be worthwhile to create a program to parse through the text file cointaining tile data pointers to increment/decrement them in a range.
I have no idea what you're talking about.
Well, for example, if you wanted to add more graphics data for another sprite animation frame between two others, you would either have to fit it somewhere where it would no longer be intuitive, or you would have to insert the graphics data and move everything after it, but then the pointers pointing to this data will all have wrong addresses.
Nothing will have the wrong address if you use labels instead of hardcoded numbers. CHR-ROM banks can still be numbered (if the assembler supports bank numbering), and you can set the PC for each bank. Use labels to identify everything, and to get a tile's index, divide its address by 16. You can automate it all in the assembler this way.
Sync'ing this with an external NT/level/sprite editor is another issue, which I'm not sure how to solve. When I code my own external tools that handle CHR data I usually code them do they can dynamically rearrange the order of the tiles based on a reference image.