This would change the impl to something like 

    val sm = withBatch { batch ⇒
      val ps = if (s.isInstanceOf[PromiseActorRef]) context.system.deadLetters else s
      val sm = pm.copy(sender = Serialization.serializedActorPath(ps))
      val pid = numericId(sm.processorId)
      batch.put ...
      batch.put ...
      sm
    }
    p.tell(Written(sm), s)

What do I gain?