A failure is indeed the the behaviour I would have expected, but a NPE should never be a failure handling strategy as the user does not know about what went wrong or what he can do to prevent the failure in the future. I had to look into the code to find a hint that the executed command might not have been configured.
Instead there should be an error message saying "Tool location for 'Groovy 1.8.1' not found at '/opt/groovy...'" or tool location for 'Groovy 1.8.1 not found' or something like that. This would help to find the problem source.
(Maybe this is not a problem of the Groovy plugin but a general problem configuring external tools on slaves.)