(help says that value should be stored somewhere and one you can use hArcData returned by OpenArchive to identify that place)

So does TC pass the same callback pointer for all hArcData values or there may be different callbacks for different archives? I expect that first case is correct because second one looks weird (it implies runtime code generation since there will be no way for TC to detect for which plugin/archive callback is called).

I think that much more changes would be required in code than just adding const for some function arguments in case of adding Unicode support... And, these functions are exported by DLL, they don't need to be called from another plugin source file, so no signature matching is required.
The only case when adding Unicode support is just straightforward as you say is when all plugin code uses TCHAR and Windows API for working with strings, and no CRT or STL where ANSI and Unicode require completely different functions and classes. But I don't think that most plugins work like that:)

Btw, I'm still offering a $200 reward for anyone porting an existing plugin (without source) to 64-bit for which there is no 64-bit version yet, or to create a new 32bit+64bit plugin. There is also a $100 reward for recompiling an existing plugin with source to 64-bit.