The amount of conceptual compromises React.js either addresses or introduces is very high. That, however, is typical, especially in a browser environment.
This introductory talk explains the basic design decisions that led to React.js.
Although the video is a bit old, it’s also surprising to hear, at the very end of the video, that the presenter has no idea whether React will be used for Facebook mobile on browsers. Reminds us of Microsoft.