I do everything in the stand alone IDLE that comes with the default install.
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> doc = r"D:\test.mxd"
>>> import arcpy
>>> mxd = arcpy.mapping.MapDocument(doc)
>>> DFList = arcpy.mapping.ListDataFrames(mxd) ### first with just empty mxd
>>> del mxd
>>> mxd = arcpy.mapping.MapDocument(doc)
>>> DFList = arcpy.mapping.ListDataFrames(mxd)
>>> arcpy.mapping.ListBrokenDataSources(mxd) ### then added windrosepoints, deleted the dataset, ensured it was broken, this is result.
[<map layer u'windrosepoints'>]
R_Only tested with empty and with ONE broken dataset.This is not the first time I have encountered an issue where something fails in an external python window but works inside of arc.
I have found just the opposite of this. That is why I run everything externally.....