@russelldb did you have any further thoughts on this? I can't think of a conceivable use case where this would happen on purpose. I think there is only so much we can do here. Forgetting about counters for a moment, if I write an application that accidentally uses the same key for two purposes Riak will never let me know. Errors would most likely (or hopefully) show up at the application level. With counters, the same holds but its even more likely I get an errror since my deserializer won't know what know what to do w/ the counter bytes. Since my assumption is this is an application-level bug I don't think its an issue.

tl;dr I don't think Riak needs to do anything special here (the TODO can be removed). Assuming the application wants to read what it wrote, when reading the sibling it will come across the counter bytes and highlight an application-level bug.