Another instance where one level data set names are not in the work library is if you create an SQL view. For instance:
proc sql;
create view perm.name as
select *
from othername
where var > 20;

In this case the othername data set is assumed to be in the same library location as where the view, perm.name, is stored. This allows you to not always have the libref of perm when you use the view.