Regarding your first question, I should say that the main goal for writing k6 is performance testing. Although it may fit in RESTful API testing category, but that’s not the main reason for k6 existence. Thus it doesn’t provide any kind of schema validation out of the box. BTW, this is what Postman uses in its sandbox API: tv4.
The biggest upside to using JavaScript for writing (load) test scripts, beside being easy-to-use, is that you might be able to include another JS library in your code, as long as it doesn’t use native NodeJS or browser APIs.
For this to work, have a look at the modules documentation in k6 docs.