I don't think BMW has done anything wrong here other than refusing to open up the battery BMS communication to third parties. Replacing the battery is actually quite simple in theory except for...
* Getting high quality cells or battery pack. Since i3s are no longer in production, a third-party vendor would need to front the development and manufacturing cost of these replacement packs, or refurbishment of existing packs.
* Getting a quality battery BMS that can communicate with the car and be coded to it. From what I've heard, the coding is the major hurdle to replacing the battery packs on the BMW i3s.
* Creating a list/group of shops that have the capabilities to replace the battery packs and are actively advertising these services at a reasonable cost.
I think unfortunately the i3 will never be the car that will have 3rd party battery support in the long run. I can imagine that higher production cars aimed at the general consumer market (Chevy Bolt) will ultimately drive this industry, as the secondhand market for EVs will push companies to develop drop-in refurbished packs that can be swapped into these cars.
Not to make a political stance, but something does need to happen on the federal level to open up maintenance for electrification. Both in terms of maintenance for the EVs and their components themselves, but also the charging infrastructure. I think federal grants for companies looking to spin up battery refurbishment centers would be wise as I don't believe any automaker is particularly concerned about battery replacement costs for their fleet.