1. When I re-import the xml, it seems to be back in binary form when I export it again. That's good! What I'm wondering is whether there is any downside of exporting as xml and reimporting in terms of file sizes and performance? Does it just get immediately turned back into a binary of the same size that you started with when you reimport the xml file?
.vap files aren't used by VoiceAttack internally; they essentially contain information on what values should be used when creating profile and command information within the profile database, so when importing, VoiceAttack is internally creating data structures, and then filling them in with the information provided in the .vap file.
So regardless of whether you're using a binary format .vap, or an XML-formatted .vap, the structure in the database is the same. Only the values are provided by the .vap file.
In other words, as long as the values in the .vap file are identical, performance and size within the profile database should also be identical, and identical to manually inputting the same values through the GUI.
2. Is it better to use Notepad++ to edit the xml? I know that standard notepad can damage certain types of files (from modding other software), Notepad++ seems to be less destructive?
Notepad should be fairly safe in this context (you definitely wouldn't want to use WordPad though).
Notepad++ could make it easier to spot certain mistakes because of syntax and matching tag highlighting though, if you were to manually alter values/formatting.
3. Is there any chance of damaging the profile if I am repeatedly exporting as xml and reimporting after a search and replace? I won't be changing formatting, I'm just doing a simple search and replace for folder paths. But I'll probably do the export -> import a hundred times. Just checking that I'm not going to corrupt anything, I've been working on the profile for a good few years now and don't want to break it!
Technically, any time a file is being written to there is a theoretical possibility that something goes wrong (this is certainly not specific to VoiceAttack, either), but that's in the same vein as the possibility of having an accident every time you drive a car.
It's good to take precautions (making backups of your .vap file/wearing a seatbelt and driving defensively), but it's not nearly likely enough to avoid doing it.
4. The reason I'm wanting to do search and replace is to change folder paths.
For example, if I have a command that plays a file from {VA_SOUNDS}\ATP_Pack\0 FO Responses\Cessna152\CL2\4, I want to be able to duplicate that command and change the path to {VA_SOUNDS}\ATP_Pack\0 FO Responses\Boeing737NG\CL2\4
It there any way to do that apart from the export .xml -> search and replace -> import profile routine that we're talking about here?
Aside from changing each individual command/action manually through the GUI, no.
If you're using identical commands in multiple contexts, you could consider using a token to alter the path dynamically, E.G.
{VA_SOUNDS}\ATP_Pack\0 FO Responses\{TXT:aircraft}\CL2\4
assuming the folder structure otherwise matches, as it does in your examples.
You'd then set the value of that text variable, "aircraft", to "Cessna152" or "Boeing737NG" to use the relevant file.