Ok I know this isn't a technical question, but: What do businesses that regularly deal with Bitcoin have to say about this? And wallet developers? It still seems like a strange new feature.
As Peter Todd demonstrated with his Coinbase double-spend, it is (and always has been) very easy to double-spend 0-conf transactions even without RBF. In most cases, it is only slightly less difficult to double-spend with RBF compared to non-RBF.
I would disagree with this. In order for a 0-confirmation transaction to get double spent (assuming you have zero influence on any amount of mining hardware/pool) without RBF, as a general rule most of the network needs to have not seen the transaction, AND the transaction needs to either not have been seen by the miners' nodes or not be a transaction that the miners will generally confirm. In order for the above to be true, you generally will need to create a transaction with a very low fee, and/or otherwise be non-standard. Companies that accept 0/unconfirmed transactions need to filter out the above types of transactions until they have at least one confirmation (or more) in order to prevent financial losses to themselves. When the spam attacks were taking place over the summer, luckybi.it was the victim of several double spend attacks, and they made adjustments accordingly, the
same is true for PocketDice, and in light of Peter Todd's double spend, the same will likely be true for coinbase.
If a transaction has been seen by the majority of the network, has no reason to not be relayed by most nodes, has a sufficient transaction fee to get quickly confirmed, and some amount of time has elapsed (generally <10 seconds), then it is very difficult to double spend a 0/unconfirmed transaction if you do not have any influence in any mining hardware/pool.
I think that it's always been a hopeless effort, but some services try to predict when 0-conf transactions are high-risk using a number of network nodes listening for double-spends and other such things. For these, it's a simple matter to check for the RBF opt-in and treat these transactions as automatically high-risk.
I feel like most people are imagining that with RBF there's going to be a button in wallets that says "take back this money", but that's very unlikely. Right now you have to use createrawtransaction to send a RBF-enabled transaction, and in the future there will be a button to increase fees (or something), but I really doubt Core is ever going to provide an easy UI for fraudulently double-spending. As is the case today, 0-conf transactions will often work despite being totally insecure because a large percentage of people are honest, and of those who are dishonest, a large percentage of them haven't bothered to figure out how to double-spend.
Wouldn't it be possible for someone to sign a transaction that relies on input
x, and has a "high" fee, save this transaction to a text file (or wherever), then sign a separate transaction that also relies on input
x and has a "low" fee, and has the appropriate flags that "enable" RBF, and broadcast this transaction. Then they could simply use "sendrawtransaction' (which is significantly easier to use then "createrawtransaction" imo) to broadcast the conflicting transaction.
I really doubt Core is ever going to provide an easy UI for fraudulently double-spending
This doesn't mean that others will not write guides on how to fraudulently double spend transactions, and that people will not design wallets/programs to help people fraudulently double spend transactions.
From what I understand RBF is similar to CPFP in a sense that both share the same goal of getting a transaction to confirm that would probably not otherwise confirm. However there are potentially fraudulent uses for RBF while there are not (that I am aware of) for CPFP. Additionally CPFP puts the "burden" of the cost of getting a transaction confirmed on the receiver, which is generally the status quo for retail transactions (especially those involving credit cards), which consumers are used to, and often demand.
I am having difficulty finding reasons why RBF is better then CPFP and/or RBF is being implemented in core while CPFP is not supported (for the most part).