Los mensajes CAN siempre contienen un ID de 11 o 29 bits. La forma en que use esa identificación, si es que depende de usted.
Si solo tiene dos nodos, y uno de ellos solo envía un mensaje, el otro nodo podría ignorar por completo la ID recibida y simplemente procesar el mensaje de acuerdo con el único formato que puede tener. Sin embargo, esto es realmente malo, diría francamente irresponsable, la arquitectura del sistema. Sería mucho mejor mirar el ID y descartar los mensajes que no tengan el ID esperado. Esto es algo muy fácil de hacer, por lo que realmente no hay ninguna excusa para no hacerlo.
Un nodo que responde a una solicitud remota de ID 500 enviando un mensaje con ID 3 está roto o también está diseñado de manera irresponsable. No puedo imaginar ningún producto comercial haciendo esto. Podría ser una buena idea que el nodo solicitante envíe solicitudes para 500 y 3 por si acaso, y que esté preparado para manejar las respuestas con cualquier ID. Tal vez algún día el nodo estúpidamente diseñado sea arreglado o actualizado. Si el solicitante al menos sigue las reglas, habrá menos posibilidades de que surja un problema más adelante.
Sin embargo, consideraría seriamente encontrar una alternativa para un nodo que responda con 3 a una solicitud de 500. Algo que el diseño irresponsable probablemente tenga otros problemas. Huir.