I agree that it is primarily the BJCP that made the distinction based on level of roasted barley. There is little other basis provided for calling these styles different.
Personally, I think the two styles are nearly one and the same. I have had porters that are as black and roasty as midnight, and likewise I have had wimpy stouts. Go back 100-200 years, and there might have been a more obvious difference. Or, perhaps not. But here in the 21st century, we're just making up our own garbage. I think what it really comes down to is, if you think it's super dark and very roasty, call it a stout. If you make another batch that turns out a little less roasty, you can call it your porter. And vice versa. It seems no one out there besides self-proclaimed snobs truly know or understand the difference. And I fail to see why we call these two different styles. Stout is historically the son of porter. And yet now, porter has become the neglected relative of the more-popular stout. So call it all stout if you want it to sell. People just aren't as interested in your porter, even if it tastes a thousand times better than Guinness, and even though Guinness is little more than a cream ale with 3% roasted barley and/or black malt.