cocos2d-xは込み入った話になると解説サイトが少ないです。特に日本語の解説サイトがとても少なく、大体が英語なので、英語を読む気力がないとやっていけません。
また、公式のリファレンスに間違った情報が書いてあったり、そもそも公式のリファレンスが不親切だったり(使い方が書いておらず、ただただメソッドのリストがあるだけ)するので、最終的にはcocos2d-x内部のコードが読めないと(そしてそこからラッパークラスを実装できないと)問題が解決できないことがあります。
あとはプロジェクトが大きくなってクラス数(参照数?)が多くなるとデバッグの待ち時間がとても長くなります。300を超えると5分10分待ちもザラです。参照の多いクラスに変更があったり、git等で共有しているコードをpullしたりするとそんな感じです。(もちろんクラス数の少ない場合は全く気になりません)
逆にエンジンに頼らずに作るとなると、描画やリソースの管理等、意識せずともエンジンがやってくれる部分を自分で実装しなければならないので、総合的な難易度はこちらのほうが高いと言えます。また、完全にネイティブ(ハイブリッドではなく)でiphoneとandroid両方に対応したいなら基本的にjavaとObjective-Cの2言語の学習が必要です。
早さについては、motryさんの仰る「早い」というのが開発の速度のことであれば、エンジンに頼ったほうが圧倒的に早いです。ですが、アプリの実行速度のことであれば、エンジンは余分なものをたくさん使うのでネイティブの方が早いかも知れません。ただし、これを気にしてネイティブを選ぶほどの差が出るとは思えません。
まとめると、カジュアルゲーム等、簡単なゲームであればcocos2d-xを利用する利点が大きいです。逆に規模が大きく、あるいは複雑になればなるほど欠点が目立ってきます。マルチプラットフォームをお考えならエンジンに頼るのがいいかと思います。cocos2d-xかどうかは別として。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。