The code for the consensus rules should be in a separate library, and that library should be used by all implementations
I'm usually all for having a variety of open implementations, but we need to avoid an y chance of a hard fork that is accidentally introduced via an accidental change in consensus code. This happened in March 2013

Alert: chain fork caused by pre-0.8 clients dealing badly with large blocks
Alert: chain fork caused by pre-0.8 clients dealing badly with large blocks

Bitcoin Magazine
Bitcoin Network Shaken By Blockchain Fork
Yesterday, the Bitcoin network experienced one of the most serious hiccups that we have seen in the past four years. Starting from block 225430, the