--- Quote Start ---
Kaz: there is no need to have a package in a library. You can just use direct instantiation. The library names come from the tool, not the VHDL (you reference them in VHDL, but you dont create them in VHDL). This way, every library can reference itself via "work".
--- Quote End ---
Tricky: I agree. When you compile a user package it goes by default to work library as any other module.
However, the user may compile it in a different area and set their pointer(library name) if that is going to be of use.And yes the setting of library pointer is not through user code but through commands. The pointer can then be declared in code.
buddha1987: The term vendor/user library may better be called built in/user library respectively.