Bring a large pan of slightly salted water to the boil, add the oil and then the spaghetti. Cook according to the instructions on the packet (usually about 15-20 minutes in boiling water). You can check to see if the spaghetti is cooked by removing a strand on the end of a fork.
Meanwhile, grate (shred) the cheese and place half of it in a mixing bowl. With just two of the eggs, separate the yolks from the whites and discard the whites. Add the yolks to the cheese and also add the other two eggs complete. Mix well. Beat the butter well with a fork to make it soft and creamy. Cut the bacon into small strips and fry for a few minutes over a moderate heat. Drain off any fat from the frying pan then add the cream and a pinch of cayenne pepper. Stir the bacon and cream well and allow to warm (but not to boil).
When the spaghetti is cooked, drain it in a colander and transfer it to a warm serving plate. Add the beaten butter and, using two forks, lift the spaghetti several times to incorporate the butter. Add the bacon and cream mix and then the egg and cheese mix (The heat of the spaghetti is sufficient to cook the eggs). Toss the spaghetti again and then add salt and freshly ground pepper to taste. Serve immediately with the remaining cheese in a separate dish to sprinkle on if wished.