Is Craft suitable for these specific document management goals?
If Craft is good enough for the AP, it'll be good enough for everyone. ;)
I have little experience with EE, other than migrating away from it, but I have built enough in WordPress so here's my experience with that, as compared to Craft.
Don't be afraid of the &quot;coding&quot; part. Twig is pretty easy to learn and you'll learn to love it. Throwing together a plugin is harder but with Craft's decent MVC structure, it'll be much more easier to maintain—more so than trying to get WordPress to bend to your will. Creating plugins that look and feel native are much much easier, since you're just extending Craft's already built-in stuff.
(1) Create relationships between docs
I'd go so far as to say this is Craft's most killer feature. Try to do this in WordPress, for example, and you end up throwing plugins at the problem or convoluted sql queries to get it to do what you want. ACF is great but Craft's engine is fast, built-in, and it works within all elements.  After you've used Craft's relations, it's hard to use something else.
Especially if you store actual documents, like PDFs or Word docs, assets are WordPress' achilles heel. By default, WP stores files in year/month directory structure—which makes sense for blogging but not for any kind of database.  Assets in Craft are first-class citizens, right down to the fact you can even add custom fields to them.
So, let's say you want to store the document you've copied from a Word doc. Why not store the original document as well? You can do that easily and if you ever have to refer back to the &quot;archived original&quot; it's just a relationship away. You could store that relationship either on the asset itself (refer back to the document) or on the entry that refers to the asset. Either way, Craft knows about it and you can use the relationship.
(2) Ajax based filtering system
My experience with WP plugins is hit and miss. They either will work as advertised or they won't. But that's it. Stray from that beaten path and you might as well be writing it yourself. This reddit thread (contains NSFW language, obviously it's reddit) has some good reasons why rolling your own can more productive in cases like this. Craft is so easy to query and add parameters to; AJAX is really just another layer. You need a solid base and WP is not going to cut it here. Craft's UI is so intuitive, it's an easy choice, especially when you have end users to support.
(3) Document import/export
Hard to say what you want to do as far as import—there's a whole cottage industry built on trying to parse Word and PDFs to html etc.—but when it comes to exporting out the data, like you mentioned, since Craft stores in discrete fields, you can get at just the data you need. You'd want to use something like ACF in WordPress but it's not as nice to query, especially when it comes to relationships. Having that built-in to Craft is a huge advantage.
(4) Document Version System
Craft has entry revisions built-in and it's one of the best implementations I've used. You can publish over current versions, have multiple drafts of the same document, name them, etc. To do this inside WordPress takes a fair amount of effort. The only thing WP has that Craft does not is a built-in diff viewer so you can see what changed. That's harder to do on a field-by-field basis. You'd also need to roll your own &quot;publish status&quot; in Craft though. WordPress has a slight leg up here but really, emphasis on slight.
What else?
Multiple languages built-in. Again, WP users love to throw plugins at this problem but it really needs to be built into a CMS' DNA. Craft Pro has this ready to go. Even if you don't buy the Pro version, Craft stores it in a future-friendly way, so when you are ready to go, you're not jumping through hoops. Brandon Kelly mentions this and he's absolutely right.