Clearing Screen Layout List
The following code will remove all screens from bpy.data.screens except the last one (because there must always be at least one screen):

import bpy

for screen in bpy.data.screens:
    bpy.ops.screen.delete({'screen': screen})


There is no RNA method to remove screens. In general, you shouldn't deal with screens a lot with Python scripts, because the API is incomplete and not fully working (joining is buggy and requires coordinates of the split/join widgets for instance).

Modal areas like the file selector a special, as well as other maximized areas, which create a additional, temporary screen.