Thank you for your interest in Aspose.Words.
Some threads are private because the original poster chose to post privately. I'll check with out web team to see if such threads could be hidden altogether.
In that particular thread loading one corrupted document was causing stack overflow and it was crashing the application in such a way it could not recover. This happens very rarely, most of the time if Aspose.Words loads a document and sees it is invalid it throws a normal exception that you can catch and proceed.
Regarding your other questions:
1. We provide Document.RemoveMacros method that removes all VBA code from the document. Let us know if you want more functionality.
2. Versions. If you mean tracking changes (also called revisions), then there is the Document.AcceptAllRevisions method to accept any existing revisions in the document. There are also methods to detect individual insert or delete revisions, for example Run.IsInsertRevision. Let us know if you need more.
3. I'm not aware of ability to protect document against printing in Microsoft Word. Therefore no way to detect this.
4. Use Document.DetectFileFormat to detect the format of any document without opening it.