Things I am in favor of in RPGs:
* Allowing the player to respec advancement choices (e.g. skills, feats, spells, etc.) at specific points in the game.
* Tying the respec to something that is explained in the context of the world (e.g. a trainer NPC of some sort or at least a location where the character can spend time).
* Imposing a non-trivial cost to the respec.
* Tying respec capability to level of difficulty and/or game modes.
Things I am not in favor of:
* Allowing the player to respec the base aspects of a character (e.g. class, race). Especially when it comes to companions, many of these concepts are too integral to what the character is all about.
I have been making RPGs for 13 years. During that time, I have directly watched literally hundreds of people play these games and indirectly heard many more describe their experiences. I've seen expert players, moderately-experienced players, and people who are new to RPGs. It brings me only misery to see someone stop playing a game because they slowly realize they made an irrevocable strategic mistake due to their own ignorance, lack of experience, or even careless reading of a description.
I think it is good to allow advanced players to lock off respec options and I think it is good to put an in-game cost and location restrictions on when/where respec can occur, but I think it is extremely valuable tool, even for experienced players. In a system that allows myriad options, it is extremely easy for a player to make a choice that is valid and grants a benefit but does not produce the outcome they expect (e.g. produces an orthogonal rather than directly complementary/stacking benefit).