Hola, pues si la funcion DateDiff vienen de Microsoft.VisualBasic, ahi estan contenidas todas las utiles funciones que nos eran de gran utilidad en proyectos de VB 6.0 ahora en .NET no tiene otro DateDiff, por eso tienes que recurrir al uso del Microsoft.VisualBasic y todas sus funciones contenidas, que para eso estan incluidas en .NET, ahora como al usar esto solo haces una referencia no tienes por que preocuparte ya que esta referencia se agrega a tu proyecto y no hay problemas a la hora de empaquetar, porque esas son las ventajas de .NET.
Estas funciones que tiene el anterior Visual Basic si que eran, son y seguiran siendo de mucha utilidad, incluso a la hora de programar con C# puedes usar estas funciones desde este lenguaje, y no solo desde C# en resumen desde cualquier lenguaje .NET, a mi cuantas veces me salvo esta libreria cuando estuve programando con C# ya que no queria volver a inventar la rueda(rehacer estas funciones en C#) asi que use Microsoft.VisualBasic, ahora no es que no haya caso realizarlo desde C# sino que te lleva mas tiempo, por ejemplo al usar la funcion IsNumeric esto tenia que mandar a una funcion donde usaba una funcion de sobrecarga y con manejo de excepciones obtenia el IsNumeric, tambien se lo hubiera podido hacer manejando como cadena, etc hay N-cientas formas de hacerlo y el chiste esta en buscar la mas optima y eficiente, pero como dije para que reinventar la rueda, asi que pensemos todo orientado a objetos.
Salu2