Well, it doesn't surprise me at all that the window menu does it's own thing, but I'm wondering why the indexing is different for you with vanilla AppleScript in Safari and with System Events.
-------------------------------------------------------------------------------------------
tell application "System Events"
tell application process "Safari"
tell (windows whose subrole is "AXStandardWindow")
set sevWinNameList to name
end tell
end tell
end tell
set x to " "
tell application "Safari"
set vanillaAppleScriptWinNameList to name of windows where its document is not missing value
end tell
items 1 thru -2 of {¬
sevWinNameList, ¬
vanillaAppleScriptWinNameList, ¬
""}
-------------------------------------------------------------------------------------------
On my system these two come up the same: