Should I use 为 instead of 是 to mean "is" on a date?
为 http://www.cantonese.sheik.co.uk/dictionary/characters/466/
[3] [v] be; is; be equivalent to

为 has many different meanings, &quot;is&quot; (是) is just one of them.
You can replace '为' with '是' if you are using it as 'is' in the context.

报名截止日期为2月17日。(literary)

报名截止日期是2月17日。(colloquial)



Also, is there any case that 为 must be used, not just because of &quot;formal&quot;?

You must use '为' instead of '是' when  '为' doesn't mean 'is' in the context.
For example:

'为' in &quot;印刷术、火药、指南针、‌​纸统称为四大发明&quot; follows the verb 称(be called). '为' here is not equivalent to 'is' but 'as'.

You cannot say &quot;印刷术、火药、指南针、‌​纸[统称是]古代中国四大发明&quot;

But you can say &quot;印刷术、火药、指南针、‌​纸, [为]古代中国四大发明&quot; or &quot;印刷术、火药、指南针、‌​纸[是]古代中国四大发明&quot;


because [印刷术、火药、指南针、‌​纸] [is] [古代中国四大发明]
EDIT:
If it is a written announcement, no matter what the predicate is, you should use 为.
Posting '报名截止日期[是]2月17日' or '报名费用[是]成人二十元，老人和儿童半价' is considered bad vocabulary choice (using colloquial term when it should be literary)
If it is an oral conversation, no matter what the predicate is, you should use 是
Telling someone '报名截止日期[为]2月17日' or '报名费用[为]成人二十元，老人和儿童半价' is also considered bad vocabulary choice (using literary term when it should be colloquial)