@NarayanK, Thanks for posting this as it helps confirm behaviour of certain functions. Strangely CELL("width") is returning a two element array. The second element of this array sometimes returns FALSE and sometimes TRUE. Does anyone have any ideas what this is?
I'm not sure what the purpose is but the fact that the CELL function can retun an array with a particular combination of inputs means that the usual array evaluation of arguments doesn't happen. This explains why you need the IF(1,+...) construction to force array evaluation of the second argument or for the first argument something like T(IF(1,{"width","col"})).
Several other functions behave similarly...
The INDEX function needs N(IF(1,...)) in the second or third arguments to array evaluate argumennts. INDEX can return an array when the second or third argument is zero.
The VLOOKUP / HLOOKUP functions need T(IF(1,+...)) or similar in the first argument to return an array. Somewhat like CELL, these functions can return a one element array when the third argument is a single cell reference.
It appears that what is needed to force array evaluation is to pass the array as a variant so that it doesn't get converted to a value. The IF(1,...) construction is converting the argument to a variant array and when passed to a function that takes a variant argument the array gets passed as if it was a value. This trick was discovered several years ago by piny on a chinese language forum.