Has your friend read her contract and handbook? It should all be spelled out in there.
It's not 'bad practice' - it's necessary. There has to be a defined term for working 'week', 'day' etc, otherwise no-one would ever know where they stand.
What's actually happening is that she has a working week of 40 hours (as a figure, I don't know if that's the case!) She will never be allowed to ordinarily 'work' more than this.
So her 'ordinary week' will never be more than 40 paid hours.
Now, there may be some weeks where she does some overtime - her 60 hour weeks in some months, for example, but she shouldn't be counting on this, as that's not her working week. If she can't live off that, it may be time to look for a new job.
Annual Leave can only be taken on 'working days', and it's very dubious, now, to pay someone in lieu of them actually taking time off. In fact, employers must ensure employees actually take 4 weeks of their 5.6 now, end of.
To let her take two days 'leave' in a week where she's worked 'full time' could be seen as paying holiday in lieu of her taking it - i.e. holiday as overtime. That could get her company in a lot of trouble now.
She should be free to use her leave in weeks where she works less than the 40, to make it up, if she wanted to, because this is the reverse of the scenario above.
She could also, if this is happening a lot and her ordinary working week is regularly more than 40 hours, lodge a request for the 'working week and day' to be amended in their contracts and handbooks as these should reflect accuracy. And eight-hour day that only applies for holidays is iffy if everyone actually always works 12 hours shifts.
As for her manager not 'telling her' - see comment about handbook and contract. Your friend should be aware of this because it's in there, and she should be familiar with it. If it's not, that's a different ball game!
She will, however, still have those holiday hours owing to her to take at another time. Try seeing this as she did a full time week in three days! That's a win!