I've done it both ways. My first job as an RN was a free for all in terms of attire - only certain colors were prohibited, and it had to be with good taste (very liberal). The only t-shirts we could wear were hospital approved attire (unit specific, volunteer day event shirts etc).
My job as a PCA/SNA/CNA was a color coded by job uniform policy - hunter green for unlicensed assistants caring for patients in an inpatient setting, navy for RNs, no printed tops, white/black/grey shoes, and white or grey undershirts/long sleeve t-shirts for staff that wanted to wear them. As a PCA/SNA/CNA the only time we could wear anything not technically uniform - was on game days we could wear a tasteful shirt promoting the teams at the university I worked at, or on weekends or holidays we could wear a medical center shirt - those were the only exceptions. My second job as an RN was just like that with slightly different colors (no sports related shirts but medical center approved t-shirts could be work with uniform pants). Now, (again) I'm an RN at a university hospital. We have a color coded dress code by job title. I work in a procedure area where I wear hospital issued scrubs. My choices for education days outside of my department are: business casual (just like for orientation), ceil blue or black, and my hospital issued scrubs. Staff at our hospital can wear hospital approved non-uniform shirts including unit specific shirts (we have some really cool designs from some of our inpatient units), medical center shirts, and shirts like for the fundraising program for our children's hospital etc.
To the original poster - everywhere I've worked (as an assistant and as an RN, and all of the clinical facilities I had clinicals at as a nursing student), if you got body fluids on you, you were suppose to change into hospital issued garb and not continue to wear the soiled clothing. Yeah, white would show stains more, but I think that says more about the person's inability to keep their garments clean (hydrogen peroxide does wonders to remove blood stains FYI). Here and I thought the nurses would be upset because white is so non-flattering.