A unique wp_schedule_single_event() for each post?

You can pass arguments to the wp_schedule_single_event function:

wp_schedule_single_event($newdate, "one_day_before_event", array($post->ID));

Then if you do an add_action you can say how many arguments it will receive (in this case 1).

add_action( 'one_day_before_event', 'some_function', 10, 1 );

Then in your function you can access the variable:

function some_function($post_id) {
   // Do something with $post_id
}