Why can my package not keep locally visible?

In reply to Louie Tong:
let me simply this quetion. please see the following code snippet:

package scp_sam_pkg;
class css_regs_info;
...
endclass
function void gen_scp_regs_info();
reg_file_info inst;
inst = css_regs_info::new;
...
endfunction
endpackage
package ap_sam_pkg;
class css_regs_info;
...
endclass
function void gen_ap_regs_info();
reg_file_info inst;
inst = css_regs_info::new;
...
endfunction
endpackage

in tb.sv:
import scp_sam_pkg::gen_scp_regs_info;
import ap_sam_pkg::gen_ap_regs_info;
initial begin
...
gen_ap_regs_info(); 
...
end

My question is when gen_ap_regs_info() is called, which css_reg_info should be referenced, scp_sam_pkg::css_reg_info or ap_sam_pkg::css_reg_info?
simulation result show that scp_sam_pkg::css_reg_info is used, why? does it conform to local visibility of package?