Now there's at least two misconceptions here:
(1) You can have an CSRF vuln without an XSS vuln. It's enough to be able to send HTTP requests to the domain, which will get the session cookie appended automatically. So the session cookie being correct does not ensure that the sending origin is your own domain. Of course cross-origin you can't read the HTTP responses, but in a CSRF attack you only care about the action triggered by your request, not the result.
(2) "all action-routes like POST,PUT,DELETE must be made through an ajax request..." Not really, you can also use forms to make cross-origin requests. No XHR needed, although that's of course more convenient, but can be detected by looking at the X-Requested-With request header.
(3) "X-Frame-Options: sameorigin" can not possibly protect against POST requests made in an IFrame, because by the time the response header is received, it's already to late, the request was already parsed and processed by the target server.
Of course it is true that XSS > CSRF, but you have to protect against both. Comparing a token sent along the state-changing request to a randomly generated token associated with the session is a rather robust solution.