If you are only going for the miles (or EQPs as the case may be), and there is a greater than 50/50 chance you are going to need to leave early, I would cancel and rebook a different trip. With the ~$2500 you will have after the cancellation fee, you could take advantage of the SJU fare, for example, spend a few days in PR and SF/LA, get just as many EQPs and probably still have money leftover.
If you do end up taking the outbound and need to leave early, it might be cheaper to either buy a roundtrip ticket from BCN and just throw away the other half, or buy a one way ticket from somewhere other BCN and to somewhere other DFW --and buy cheap Y tickets or use miles to fill in the gaps.