My partner and I didn't really have that much of an issue really when it came to choosing questions. The one thing we both knew is that we preferred the quality of the individual as opposed to the technical know how. Not saying that the tech side isn't important, it just isn't our number one priority. We both would rather have an individual that contributes to the working environment in a positive way. That is we would want an individual that is respectful of others and their views, works well with others and teams, and isn't particularly high strung. We would prefer that the individual has a good grasp of some of the basics of programming, i.e. capturing from stdin, using arrays, vectors, and stacks, etc. during the interview, we wouldn't ask anyone to program anything too difficult that would require the use of reference material that would not be available during the interview. We believe that we can teach our employees what they would need to do/need to know how to do. We would also choose things that would be more geared towards our employees strengths.
I can't really speak as to whether our interview process is more ethical than some of mine because I have never had to go through the interview process. I would like to think that ours is ethical in the sense that we evaluate more the individual than what the person can/can't do. We aren't, to the best of my knowledge, targeting one specific group of people that have only one specific skill. We are giving everyone equal opportunity and evaluating based on their integrity and personality. We would much rather someone who we deem to be a good fit for us at our company than someone who is difficult to work with.