Regarding critical values, anytime I wasn't sure if the doctor knew I would call them. Ideally if someone tells you a critical value you would then ask them if the doctor has been notified (and get that persons name). If you just happen upon it in a chart you could call the lab and ask if they have any reporting system or log book showing a doctor has been notified (again get that persons name). If it is a critical value and no new orders were written I would call the doctor, (if it is the middle of the night ask a charge nurse).
I don't know legally if a nurse can tell a patient lab results. But use common sense! I do tell my diabetic patients their glucose results, I will tell patients their CBC results. Again depends on the patient. A patient who has had some bleeding and is knowledgeble about Hgb and Hct levels I will tell them. Assess their level of knowledge about their disease? A dialysis patient I will tell their chemistry levels.
A newly diagnosed patient with some abnormal values I would not tell and refer them to their doctor.