Usually, I do not directly use Autodesk.AutoCAD.ApplicationServices.Core.Application, instead, I always use Autodesk.Autodesk.ApplicationServices.Application.
Now to your question:
Application is a static instance of class Autodesk.Autodesk.ApplicationServices.Application, which represent the running AutoCAD instance, and is created by AutoCAD .NET APIs automatically and always available (as long as AutoCAD runs). That is why you do not need to instantiate an "Application" class.
As for the line of your code to add event handler to MdiActiveDocument, where MdiActiveDocument is a property of DocumentManager, which is a Document class instance that is created by AutoCAD .NET API automatically and refers to the current active document, so, you DO NOT need to "instantiate it". However, there is possibility, at certain moment during AutoCAD session, that MdiActiveDocument could be null, such as all documents are closed (not document is open in AutoCAD), or during active document switching... So, sometimes you may need to test whether MdiActiveDocument is null.
Also take your code as example, when you want to handle BeginDocumentClose event, it is very likely you not only want to something with currently active document, but also to all opening documents, so probably you would need to do:
Dim doc As Document
For Each doc In Application.DocumentManager
AddHandler doc.BeginDocumentClose, AddressOf .....
Next
Furthermore, since new document can be added/opened in AutoCAD during the same AutoCAD session, you may also want to make sure all newly added/opened document would also have its BeginDocumentClose event handled. So, you need to add the event handler whenever a new document is created:
First, make sure this is run at beginning of your code (probably in IExtensionApplication.Initialize():
Dim doc As Document
For Each doc In Application.DocumentManager
AddHandler doc.BeginDocumentClose, AddressOf .....
Next
AddHandler Application.DocumentManager.DocumentCreated, AddressOf DocumentCreatedHandler
... ...
Private Sub DocumentCreatedHandler(sender as Object, e As DocumentCollectionEventArgs)
AddHandler e.Document.BeginDocumentClose, AddressOf ........
End Sub
This, once your code is loaded and executed the first time, not only all existing documents have their BeginDocumentClose event handler hooked, but also any new document added.opened.
HTH