4] IS OSB smart enough to cache the "FWKConfigVar" so that Assign activity will not get executed every time and save the CPU cycles?No, OSB being a stateless product, does not cache/store any process/it's state anywhere.
5] Let say Ps1 Calling PS2 and PS2 calling PS3. All the Proxy services are using the same variable data "FWKConfigVar". Is there any way that this variable will get initialize first time in PS1 and pass/available across the Message flow of PS2 and PS3??As I mentioned earlier as well, you may pass variables as user defined headers/part of message body from PS1 to PS2 and so on.
The problem here is "Service Callout activity(to get Configuration data). Is it a best practice to call BS instead of taking help of small XQuery( use fn:doc() and get the required value using the XQuery)?? Assuming I required configuration data in couple of activities in message flows?Now this is something which requires a performance test because both may be a preferable option depending upon the design, complexity, size of config data file/number of records etc.