Sorry, forget to mention one crucial thing for the double spend: It only applies to 0-conf+0-fee (actually, low-fee) transactions. Currently, when calling sendrawtransaction your node will accept low-fee transaction into the local mempool but then very likely fail to relay it. This is because...