No, los celulares son todo un tema. Los mas viejos que traian cable USB tenian un convertidor USB<->RS232 (serie). Los celulares mas nuevos usan el USB de forma nativa.
Dentro de los celulares hay un microprocesador (privativo en la mayoria de casos), de arquitectura ARM o MIPS (puede haber x86, u otros) desde el cual se maneja un periferico USB (posiblemente integrado al mismo microprocesador). El celular puede entrar en modo bootloader o funcionamiento comun. El modo bootloader esta destinado a actualizar firmware, liberacion, etc. El otro modo, se encarga de ejecutar dicho codigo de forma comun.
El pic 18F4550 es un microcontrolador, de baja frecuencia (48MHz vs 200MHz o mas de los celulares) con su propia RAM, ROM (flash) y EEPROM. Obviamente que se le puede flashear un codigo de bootloader (el cual estan dentro de las librerias que mencione antes) y lograr asi entrar en un modo "bootloader" y en modo comun. Pero lo que pasa, es que los pic tienen la posibilidad de usar un programador serial externo (ICSP In Circuit Serial Programming) en el cual no hay necesidad de retirar el PIC de donde esta instalado, y mucho menos afectar a los perifericos. Es por eso que flashear un bootloader solo consume espacio al pedo (contados son los casos en que no, por ejemplo en el desarrollo de nuevos proyectos).
El circuito que vos pasaste usa el .NET para interfacear con el USB. Yo no necesite .NET para hacer tal cosa, porque yo use el driver LibUSB (el cual es portable en linux, win, mac). Con este driver, lo unico que precisas es un driver y la libreria (un .dll) para hacerlo funcionar.
Pero porque dicen que con vb6 no anda? Sencillo, la libreria es CDECL (yo probe usar el modulo cCDECL y no me funciono, obviamente que el error era mio), pero existe en internet la solucion, una libreria wrapper hecha en c++ que llama a las funciones originales de la libreria en CDECL y las traduce a WINAPI o STDCALL, las cuales se pueden usar en VB sin problemas.
El codigo es exactamente igual (yo me guie con los ejemplos que venian en las librerias de microchip, donde hay codigo fuente en .net c#), por ende el funcionamiento es el mismo. Cabe destacar que no tuve ni un solo hang ni nada.
Obviamente que podes usar eso de tu link, porque ya esta hecho y bien explicado, incluyendo sources y etc.
Pero, a mi me gusta romperme la cabeza, y customizar a mi gusto las cosas.
Saludos