As I think was inted before, the problem with factions is that players don't realize many of the factors that contribute to it - if you look at the code, there's plenty of things influencing faction creation and joining, ranging from traits to opinion to cultural and religious circumstances and more. Those things aren't the issue. It's the fact that all of them come together at once, resulting in a seemingly random mess as it's hard to pinpoint exactly why someone starts or joins a faction - even though there is, oftentimes, a reason why.