I had a similar issue where using the arcpy.da module was creating a lock on my file geodatabase. I see you worked around your problem using arcpy.Describe(), but I also discovered you can use arcpy.da.Describe() so long as you use a path as the argument instead of the Layer object and also call another function that seems to force the reset, which in my case was arcpy.management.GetCount().
There seem to be two bugs here. One, when you use the Layer object as an argument to a function like Describe(), whether it's the da module or not, a lock is created that cannot be released. Two, when you use the arcpy.da module, a lock is created that can only be released if using paths to the data since using Layer objects also creates locks. See my post with additional code samples demonstrating the issues.