You may have very good reasons for loading the client class directly, but if you do, I want to hear them =)

function webmail_plus_solr_cron() {
	$_debug = variable_get('webmail_plus_solr_debug', FALSE);
	
	if($_debug) echo "running webmail_plus_solr_cron<br>\n";
	  
	// clear everything
	
	db_query("TRUNCATE TABLE {webmail_plus_solr_history}");
	db_query("TRUNCATE TABLE {webmail_plus_solr_map}");
	db_query("TRUNCATE TABLE {webmail_plus_solr_results}");
	db_query("TRUNCATE TABLE {webmail_plus_solr_results_headers}");
	
	
	// fetch solr config
	$solr_url = variable_get('webmail_plus_solr_url', NULL);
	$solr_url_parts = parse_url($solr_url);  
	$solr_batch_size = variable_get('webmail_plus_solr_batch_size', 10);
	  
	$solr_ignore_folders = variable_get('webmail_plus_solr_ignore_folders', NULL);
	$solr_ignore_folders_arr = explode(',', $solr_ignore_folders);
	foreach($solr_ignore_folders_arr as $key=>$value) {
		$solr_folder_blacklist[trim($value)]=trim($value);
	}
	
	// load solr classes
  $include_path = get_include_path();
  $apachesolr_path = './'. drupal_get_path('module', 'apachesolr') .'/SolrPhpClient/';
  $full_path = $include_path.':'.$apachesolr_path;
  set_include_path($full_path);
  include_once('Apache/Solr/Service.php');

This is what the ApacheSolr module does for you:

function apachesolr_get_solr($host = NULL, $port = NULL, $path = NULL) {
  static $solr_cache;

  if (empty($host)) {
    $host = variable_get('apachesolr_host', 'localhost');
  }
  if (empty($port)) {
    $port = variable_get('apachesolr_port', '8983');
  }
  if (empty($path)) {
    $path = variable_get('apachesolr_path', '/solr');
  }

  if (empty($solr_cache[$host][$port][$path])) {
    list($module, $filepath, $class) = variable_get('apachesolr_service_class', array('apachesolr', 'Drupal_Apache_Solr_Service.php', 'Drupal_Apache_Solr_Service'));
    include_once(drupal_get_path('module', $module) .'/'. $filepath);

A lot of the new functionality being added relies on overriding the client class.