If you're using a third party JTAG cable, make sure that signal integrity is met, i.e. TCK has a very fast rise time (< 6 ns) and that the cable length is very short.
To do a cheap signal integrity check, you might poll the device IDCODE for a few hours and see if a bit flips.
Unfortunately, there is no real protection against accidental misconfiguration on the MachXO* devices, I've seen a few cases getting the wrong settings by a funny sequence caused by their JTAG daemon 'lserver', however those device were in a chain of the MachXO3 types.
The internals for XO2 are documented a little sparse, but you should find the details in the Lattice tech notes describing the 'Feature Row'.
I don't recall the exact procedure, but I think I got recovery for the XO3 problem just by issueing a full 'ISC_ERASE' sequence. As long as you haven't messed with any OTP fuses, I wouldn't consider it 'bricked'.