bin is for binary file (file format). If it doesn't exist already, the file is created automatically. (The directory is not created automatically.) The bin file only serves as a store for a counter, which is increased everytime the procedure is called. So, no it does not contain a list at all.
It is certainly possible to use other types of files. If you need autonumbering for Excel, for instance, you could also create an Excel xls file to store the current number in say cell A1. You would then write a procedure that opens this file, adds 1 to a the current number in cell A1, assigns this new number to a variable, saves and closes the file, and dumps the value of the variable in the appropriate cell in your new Excel file.
BTW, if you store the procedure in a Workbook_Open event, a new number will be assigned again every time the workbook is opened. It's better to have the Workbook_Open procedure check whether there is already a number in the designated cell, and if not call a Sub with the autonumbering procedure.
For autonumbering in Word an "ini" file could be used in combination with a docvariable field. The ini file stores the current number, to which 1 is added by the autonumbering procedure. If it doesn't exist already the ini file has to be created by a statement or a call to a sub such as:
Sub CreateCounterFile()
'
System.PrivateProfileString("d:\Data\Draft\QUOTE" & Year(Now) & ".INI", "NUMBERING", "LASTNUMBER"

= "0"
'
End Sub
Because I want to start numbering from 1 every year, and want to be able to tell which counter file is used for what the first part of the file name is QUOTE for the file storing the current quotation number, the year is added to it Year(NOW), plus the extension ".INI".
An AutoNew macro for this:
Sub AutoNew()
'
Dim strNewQuoteNo As String
Dim strLastQuoteNo As String
'
'
With Application.FileSearch
.NewSearch
.LookIn = "d:\data\draft"
.SearchSubFolders = False
.FileName = "QUOTE" & Format(Date, "yyyy"

& ".INI"
If .Execute() = 0 Then
CreateCounterFile
End If
End With
'
strLastQuoteNo = System.PrivateProfileString("d:\Data\Draft\QUOTE" & Format(Date, "yyyy"

& ".INI", "NUMBERING", "LASTNUMBER"

strNewQuoteNo = strLastQuoteNo + 1
ActiveDocument.Variables("QuoteNo"

.Value = strNewQuoteNo
strLastQuoteNo = strNewQuoteNo
System.PrivateProfileString("d:\Data\Draft\QUOTE" & Format(Date, "yyyy"

& ".INI", "NUMBERING", "LASTNUMBER"

= strNewQuoteNo
ActiveDocument.Fields.Update
'
'
End Sub
The template in which this is stored has a docvariable field called "QuoteNo".
Again, this is a basic example - it certainly isn't userproof.
IS