There is no reason to.  Templating would be redundant since all of the type information you need is present in the signature. Furthermore, for no two types would the same template implementation apply.  Each type needs its own special implementation so there is no savings to the code base size.  

The only reason the inverse function is templated (VLBufToVal) is because the return type is not part of the function signature. Thus the only way to achieve this effect is through templating.