While there is some luck involved in finding a share from a getwork, efficiency should never be below 50% after a few dozen getworks have been processed, unless the miner is grabbing significantly more work than it can use.
With the amount of longpolls due to merged mining, my cgminer (~30-60MH/s) reports an efficiency of ~10%-20%. No changes to default queue size, etc.
Is that a recent number (lots of issues today due to backend)? I don't see how your efficiency could possible be -that- low unless you're under 10 MH/s.
Very recent. Here's my current cgminer's header (timezone is UTC+1):
cgminer version 2.1.2 - Started: [2012-01-15 22:25:51]
--------------------------------------------------------------------------------
(5s):37.7 (avg):35.9 Mh/s | Q:12251 A:1322 R:10 HW:0 E:11% U:0.49/m
TQ: 1 ST: 2 SS: 1 DW: 2083 NB: 300 LW: 0 GF: 14 RF: 6
Connected to http://btcguild.com:8332 with LP as user XXX
Block: 000004979cede21724bfa72970fa1b35... Started: [18:39:38]
--------------------------------------------------------------------------------
I assume it's because cgminer is pretty aggressive with keeping only up-to-date work and the constant longpolls each trigger 2 new getworks. (Although the latter can't be the sole culprit, since NB is only 300, which means 600 getworks due to longpolls.)
Edit: I just restarted cgminer, so we'll see what the efficiency is in a day or so, but less that 50% is quite normal here.