I ran across an idea by @AlfredBaldenweck the other day in this post that raised some good points about how annoying it can be to work with the arcpy.List* functions. His solution of allowing a workspace parameter to be passed is good, but would require a lot of changes to the existing functions. This led me down a path of building a drop in wrapper class for injecting this functionality into your scripts that behaves more like a regular python object.
The Current Process
As it stands, to use List* functions, you need to either set the global environment workspace or use an EnvManager with the workspace property set: