1.
It all depends on what you write on the black board. It also depends on how many characters use the same behavior tree and whether they share information.
If you store information about the behavior tree on the blackboard, I'd say the behavior tree should be able to access it.
If you use the same tree for different characters, and these characters do not share information, it's feasible that the character carries its information rather than the tree.
2.
Depends on programming language (eg Java cannot make class instances without "new"), how you make the tree available (load from file?, get from static const array?)
Is the tree dynamic? Is it static?
Also here, there is no single right way to do this. Do what works for you, and then switch to more urgent problems that need solving.
3.
Consider both options, what are the costs and what are the benefits? Pick the one you like most.
4.
Any way that works is correct, since, it works! Until you have a more specific issue with whatever you do now, why would you change it?
5.
Is it useful? If yes, then yes, else nope.
You generally seem to believe there are single right ways to do each thing, and all other ways are wrong, or at least, inferior.
That is not the case. Any solution that provides a working system is by definition correct. Thus if you're implementation works, you already have a correct/right way.
Within a "correct" solution, you still have loads of different choices, which eventually change some properties of the system as a whole, like speed, memory use, or scalability. Choices are however not independent, each choice is related in some complicated way to every other choice.
At best, you can steer your correctly working system a bit towards one or perhaps two desired properties. That only works for a specific use case though. "The right way" does not exist at a general level (for all use cases that you might have).
Therefore, I think you should not try to optimize anything further until you have a specific case with it.
I generally take that a step further, any sub-system that does its job sufficiently is not worth my time. I rather spend my time on other parts of the program.