I've noticed a very similar issue before. If you take your solution, change the private field _BPOsVisible so that it is false to start with and then run it, you will get a NullReferenceException thrown from within RadChartBase.ArrangeOverride.
The problem is not the binding on the Visibility. It seems the problem is that RadCartesianChart doesn't like being initialised with a collapsed series. In fact, the following XAML is sufficient to reproduce the problem:
The workaround for Tyler is to set up the Visibility binding in code-behind. If the RadCartesianChart is within a UserControl, a suitable place to set up the binding is in an event handler for the UserControl's Loaded event.
I apologise for not filing a bug report about this. My account has been added to a support contract which has expired, but despite me chasing my client several times, it still hasn't been renewed.