A) It's used in infinite loop protection so I would guess this value was chosen as it represented the ideal balance between safeguarding performance and functionality (though you would need to ask Microsoft to be sure). Its elaborated on the MSDN slightly:
Used by the platform for infinite loop prevention. In most cases, this
property can be ignored.
Every time a running plug-in or Workflow issues a message request to
the Web services that triggers another plug-in or Workflow to execute,
the Depth property of the execution context is increased. If the depth
property increments to its maximum value within the configured time
limit, the platform considers this behavior an infinite loop and
further plug-in or Workflow execution is aborted. The maximum depth
(8) and time limit (one hour) are configurable by the Microsoft
Dynamics CRM administrator.
B) Especially long running processes could affect system performance (as other system jobs get queued up behind the long running process). If I'm correct in that the limit safeguards against performance issues then raising the limit could risk your system performance.
As a general rule of thumb these aren't the sort of settings we should change (if it was it would be easier to do, e.g. via the user interface). We can assume (and hope) that Microsoft chose this value for a reason (even if we don't know for sure which reason). We can reasonably assume that we know less than the original system developers about how this setting functions, what it does, and possible side effects. As such changing the setting presents a risk in that we don't fully understand (by comparison) what it does or the side effects it will cause.
There is also a problem here in that you are not really fixing the problem. In normal usage you shouldn't get anywhere near this limit. Resolving a symptom doesn't resolve the problem. If it was me, and I was in your position increasing the limit isn't the solution I would use.
Finally, allowing the process to run longer may mean you run into the 2 minute timeout.
Regardless of whether a plug-in executes synchronously or
asynchronously, there is a 2-minute time limit imposed on the
execution of a plug-in registered in the sandbox. If the execution of
your plug-in logic exceeds the time limit, a System.TimeoutException
is thrown. If a plug-in needs more processing time than the 2-minute
time limit, consider using a workflow or other background process to
accomplish the intended task.
C) Every server I believe.
D) I would suggest having a read of Asking if you think the question fits then ask it. Worse that happens is that the question gets down voted and closed. Take this to Meta if you want to discuss further.