I think we forget that the Singapore naval base or any naval base with drydocks and port facilities is not supposed to be on the front lines of any war. It's where your ships withdraw to for maintenance and repairs, like how USS Yorktown went to Haiwai (and not Manila) for repairs after Coral Sea. Except for Dec 7th, Haiwai was well away from the Japanese front line, further than Ceylon is from any defence of Singapore.
Why not build the fleet base in Ceylon or Calcutta? You can still defend Singapore with troops and RAF in Malaya, just don't build your only full-service Indian Ocean naval base where it can be cut off. Pacific Ops is not the RN's priority, no, it's the Indian Ocean that matters to keeping the flow of troops and materials to Europe and North Africa.
Again, I'm not saying abandon Malaya or Australia for that matter, but for RN strategy Ceylon makes sense. And that's what happened in the end, with Sommerville building a credible naval presence based on Ceylon. As soon as the shooting started, Philips should have been ordered to move to Ceylon to await reinforcements.