Separate CAN messages having same ID in function of data content
simple answer. Lets ask the Can Specification:
Priorities The IDENTIFIER defines a static message priority during bus access.
Arbitration Whenever the bus is free, any unit may start to transmit a message. If 2 or more unitsstart  transmitting  messages  at  the  same  time,  the  bus  access  conflict  is  resolved  bybitwise arbitration using the IDENTIFIER. The mechanism of arbitration guarantees thatneither information nor time is lost. If a DATA FRAME and a REMOTE FRAME with thesame  IDENTIFIER  are  initiated  at  the  same  time,  the  DATA  FRAME  prevails  over  theREMOTE  FRAME.  During  arbitration  every  transmitter  compares  the  level  of  the  bittransmitted with the level that is monitored on the bus. If these levels are equal the unitmay  continue  to  send.  When  a  ’recessive’  level  is  sent  and  a  ’dominant’  level  ismonitored  (see  Bus  Values),  the  unit  has  lost  arbitration  and  must  withdraw  withoutsending one more bit.
So if two identical ID's appear at the same time from 2 different devices, both devices think they are allowed to send and will mix the data - which should result in a bad CRC. But CAN only uses a 15bit CRC so in one of 32768 cases it will report a false positive.
So simply: Two devices which send the same ID other than data and remote frames is not permitted. It won't work!