Data Sharing vs. Message Passing: Synergy or Incompatibility? An Implementation-Driven Case Study