1) What value does a plugin offer?
a. faster execution of programmed actions?
b. access to Windows functionality that VA does not offer?
c. protection for programmer’s Intellectual Property since it is a compiled program?
d. something else?
Plugins are generally intended to extend the functionality of VoiceAttack itself, and to interface with specific application (E.G. games) through their proprietary APIs
They can be faster in theory, but in practice that'd only matter for quite complex operations (much beyond doing basic calculations like those for your heading example).
For those already familiar with either of the supported programming languages, plugins and inline functions can also make it simpler to structure logic, and to manage data in more advanced ways (E.G. using lists and/or dictionaries, foreach loops, etc...)
2) Are there certain conditions where a plugin is recommended and others where it is not?
If you need functionality that isn't available natively, or need to put together something particularly complex that would be cumbersome with native actions, you could consider either a plugin, or an inline function.
Inline functions can do the vast majority of what plugins can, but are probably more suited to relatively simple operations, as you'd probably want both newer language features (inline functions support up to C# 5.0) and more advanced autocomplete and linting features, as can be offered by IDEs like Visual Studio.
If something can be efficiently expressed using native actions, there's probably little sense in using a plugin or inline function.
3) For the [set heading] command referenced above, is the original program left in VA or moved partially or completely to the plugin?
4) If the original program is left in VA, then does the plugin execute the keyboard key press only?
Plugins cannot directly execute VoiceAttack actions. You can have a plugin do the math, but it'd then need to execute a VoiceAttack command containing the keypress action(s).